我目前正在编写一个小型浏览器,并希望通过Javascript与页面进行交互(例如GreaseMonkey - 与用户脚本一样)。
但是,我想通过QWebSettings
禁用加载网页的javascript 。现在当我做类似的事情时:
settings = QWebSettings.globalSettings()
settings.setAttribute(QWebSettings.JavascriptEnabled, False)
来自网络的javascript不起作用,但evaluateJavaScript
或addToJavaScriptWindowObject
QWebFrame
之类的内容不再有效 。
我相信基于WebKitGTK的dwb通过直接使用JavaScriptCore库来绕过这一点。
我可以做类似的事情,比如可能使用QtScript自己评估用户脚本并以某种方式将它们连接到webview吗?虽然这对我来说似乎不是一个简单的解决方案。
答案 0 :(得分:0)
今天我注意到即使禁用了javascript,evaluateJavaScript()
上的QWebElement
仍可使用。
这意味着至少我可以做类似的事情:
webview.page().mainFrame().documentElement().evaluateJavaScript("...")
并且工作正常。