关于pyqt4 QWebPage.javaScriptAlert (self, QWebFrame, QString)重载问题

wx105722 2011-06-02 11:57:00
小弟,有一个类继承了 QWebView ,并重载了QWebPage.javaScriptAlert().想在网页调用 alert()的时候,截获这个消息,将alert中的提示信息打印出来。但是,网页出现alert的时候却没有调用我写的函数.代码如下:
class Web(QWebView):
def __init__(self, parent=None):
super(Web, self).__init__(parent)
self.worker = Worker()
self.worker.start()
self.connect(self.worker, SIGNAL("go(QString)"), self.go)
self.connect(self.worker, SIGNAL("getCaptcha(QString,QString)"), self.getCaptcha)
self.connect(self.worker, SIGNAL("js(QString,QString)"), self.js)
self.connect(self.worker, SIGNAL("getHTML(QString)"), self.getHTML)
self.connect(self.worker, SIGNAL("submitCurUrl(QString)"), self.submitCurUrl)

self.createWindow = self.myCreateWindow
self.updateWebpage()

def updateWebpage(self):
try:
self.webpage = QWebPage()
self.setPage(self.webpage)
self.webframe = self.webpage.mainFrame()
self.webpage.javaScriptAlert = self._javascript_alert #重载 alert函数
self.webpage.javaScriptConsoleMessage = self._javascript_console_message
self.webpage.javaScriptConfirm = self._javascript_confirm
self.webpage.javaScriptPrompt = self._javascript_prompt
except:
print sys.exc_info()[:]

def _javascript_alert(self, webframe, message):
print 'alert....'
print "Javascript alert: %s" % unicode(message).encode('gbk','ingore')

QWebPage.javaScriptAlert(self.webpage, webframe, message)
def _javascript_console_message(self, message, line, sourceid):
print "console_message---->%s" % message
def _javascript_confirm(self, webframe, message):
smessage = unicode(message).encode('gbk','ingore')
print smessage
return QWebPage.javaScriptConfirm(self.webpage, webframe, message)
def _javascript_prompt(self, webframe, message, defaultvalue, result):
smessage = unicode(message).encode("gbk", 'ingore')
print smessage
return QWebPage.javaScriptPrompt(self.webpage, webframe, message,
defaultvalue, result)

def myCreateWindow(self, windowType):
print 'call myCreateWindow........'
return self
希望大牛指点....
...全文
157 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧