QWebView - 处理javascript无限循环

时间:2010-07-19 22:51:19

标签: javascript python pyqt pyqt4 qwebview

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吗?

编辑:两个文件都是本地文件。

2 个答案:

答案 0 :(得分:1)

sip.delete(page)会终止页面对象,停止执行,然后你要做的就是删除Python中对页面的引用:del page

您可能还想检查子类化WebPage并重新实现shouldInterruptJavaScript(),可能会在执行时杀死您的页面。

答案 1 :(得分:0)

???这根本没有任何意义。 Javascript文件无限循环。您不能从服务器“杀死”页面代码。当浏览器运行CPU绑定的Javascript时,这是不可能的 - 尤其是

也许Javascript文件只是作为一个例子提供的,但它并不重要。如果您知道某个页面已经破坏了,那么您必须修复该页面。