【问题标题】:Print Javascript Exceptions In A QWebView To The Console将 QWebView 中的 Javascript 异常打印到控制台
【发布时间】:2011-04-26 15:42:52
【问题描述】:

我正在使用 PyQt4 和 QWebView 小部件来查看网页,但我的 Javascript 似乎有问题。其他浏览器似乎运行正常,所以我想通过将它们打印到控制台来了解是否发生任何异常。

我正在使用的代码如下。我需要添加什么才能做到这一点?

from PyQt4 import QtGui, QtWebKit
browser = QtWebKit.QWebView()
browser.load(QtCore.QUrl("http://myurl"))
browser.show()

谢谢, 安德鲁

【问题讨论】:

    标签: python qt pyqt


    【解决方案1】:

    创建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
    

    【讨论】:

      【解决方案2】:

      或者你可以只添加 DeveloperExtrasEnabled,右键单击 QWebView 并选择 Inspect。

      QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);

      【讨论】:

      • 我想知道为什么这个答案没有这么多的赞成票..使用开发者工具来调试您的前端应用程序非常容易...您有我的投票朋友....跨度>
      • 是的,它非常简单直接。
      猜你喜欢
      • 1970-01-01
      • 2013-10-02
      • 2023-03-08
      • 1970-01-01
      • 2023-03-10
      • 2013-03-29
      • 1970-01-01
      • 2018-04-15
      • 2022-07-05
      相关资源
      最近更新 更多