web_view_crash.py
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
app = QApplication(sys.argv)
view = QWebView()
view.settings().setAttribute(QWebSettings.JavascriptEnabled, True)
view.load(QUrl('infinite_loop.html'))
view.show()
app.exec_()
infinite_loop.html
<script>
while(true) {
document.write('infinite loop...')}
</script>
我想从我的python代码中解决这个问题,而不需要触及javascript。我可以以某种方式杀死javascript吗?
编辑:两个文件都是本地文件。
答案 0 :(得分:1)
sip.delete(page)
会终止页面对象,停止执行,然后你要做的就是删除Python中对页面的引用:del page
您可能还想检查子类化WebPage并重新实现shouldInterruptJavaScript()
,可能会在执行时杀死您的页面。
答案 1 :(得分:0)
???这根本没有任何意义。 Javascript文件是无限循环。您不能从服务器“杀死”页面代码。当浏览器运行CPU绑定的Javascript时,这是不可能的 - 尤其是。
也许Javascript文件只是作为一个例子提供的,但它并不重要。如果您知道某个页面已经破坏了,那么您必须修复该页面。