0

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>

javascriptに触れることなく、Pythonコードからこれを修正したいと思います。どういうわけかJavaScriptを強制終了できますか?

編集:両方のファイルはローカルです。

4

2 に答える 2

1

sip.delete(page)ページオブジェクトを強制終了して実行を停止します。その後、Pythonでページへの参照を削除するだけです。del page

また、WebPageのサブクラス化と再実装を確認してshouldInterruptJavaScript()、実行時にページを強制終了することもできます。

于 2011-09-18T10:35:25.760 に答える
0

??? これはまったく意味がありません。Javascriptファイル無限ループです。サーバーからページコードを「強制終了」することはできません。それは不可能です-特にブラウザがCPUバウンドJavascriptの実行でスタックしている場合。

たぶん、そのJavascriptファイルは例として提供されただけですが、それは実際には問題ではありません。そのように壊れたページがあることがわかっている場合は、そのページを修正する必要があります。

于 2010-07-20T00:00:18.087 に答える