3

私はPythonプログラミングに非常に慣れていないので、ご容赦ください。

複数の div レイヤーを含む HTML ファイルがあります。このファイルは webkit.WebView オブジェクトで開かれます。各 div レイヤーは、クリックすると値をグローバル変数 (JavaScript) に保存します。

Python スクリプトからそのグローバル JavaScript 変数の値を読み取るにはどうすればよいですか?

私はいくつかの答えを見つけましたが、それらは私の状況に合わないようです (もちろん、私は間違っている可能性があります):

JavaScript 変数を Python に渡す

Python で JavaScript 変数を解析する

[編集]
既存の空き地 (libglade) アプリケーションでこれを表示する必要があるため、webkit.WebView を使用しています。

4

2 に答える 2

0

これを試してみてください。addToJavaScriptWindowObjectメソッドを使用して、QObjectをQWebViewに追加します。これにより、PythonスクリプトとWebビューのHMTL/Javascript間の通信が可能になります。以下の例では、JavaScriptグローバル変数メッセージの値をJavaScriptプロンプトを介して任意の値に変更できます。次に、[Pythonメッセージの印刷]リンクをクリックするたびに、javascript値を取得して出力するPythonコードが実行されます。それをコンソールに。

import sys
from PyQt4 import QtCore, QtGui, QtWebKit

HTML = """
<html><body onload="broker.print_msg(message)">
<script>var message = 'print_msg message'</script>
<a href="javascript:message=prompt('Enter Message')">Change Message</a><br/>
<a href="javascript:broker.print_msg(message)">Python Print Message</a>
</body></html>
"""

class Broker(QtCore.QObject):
    @QtCore.pyqtSlot(str)
    def print_msg(self, data):
        print data

app = QtGui.QApplication(sys.argv)
view = QtWebKit.QWebView()
view.page().mainFrame().addToJavaScriptWindowObject('broker', Broker(view))
view.setHtml(HTML)
window = QtGui.QMainWindow()
window.setCentralWidget(view)
window.show()
sys.exit(app.exec_())
于 2012-11-07T12:29:11.383 に答える