关于pyqt4 QWebPage.javaScriptAlert (self, QWebFrame, QString)重载问题
小弟,有一个类继承了 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
希望大牛指点....