我正在使用PyQt4和QWebView小部件来查看网页,但似乎我的Javascript存在问题。其他浏览器似乎运行正常,所以我想知道是否通过将它们打印到控制台发生任何异常。
我正在使用的代码如下。我需要添加什么来做到这一点?
from PyQt4 import QtGui, QtWebKit
browser = QtWebKit.QWebView()
browser.load(QtCore.QUrl("http://myurl"))
browser.show()
谢谢, 安德鲁
答案 0 :(得分:16)
创建QWebPage
的子类并定义方法javaScriptConsoleMessage()
:
import sys
from PyQt4 import QtCore, QtGui, QtWebKit
class WebPage(QtWebKit.QWebPage):
def javaScriptConsoleMessage(self, msg, line, source):
print '%s line %d: %s' % (source, line, msg)
url = 'http://localhost/test.html'
app = QtGui.QApplication([])
browser = QtWebKit.QWebView()
page = WebPage()
browser.setPage(page)
browser.load(QtCore.QUrl(url))
browser.show()
sys.exit(app.exec_())
示例输出:
% python qweb.py
http://localhost/test.html line 9: SyntaxError: Parse error
答案 1 :(得分:7)
或者您只需添加DeveloperExtrasEnabled,右键单击QWebView并选择Inspect。
QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);