javascript - Python 和读取 JavaScript 变量值

标签 javascript python webkit

我是 Python 编程的新手,所以请多多包涵。

我有一个包含多个 div 层的 HTML 文件。该文件在 webkit.WebView 对象中打开。单击时,每个 div 层都会在全局变量 (JavaScript) 中保存一个值。

如何从我的 Python 脚本中读取全局 JavaScript 变量的值?

我找到了一些答案,但它们似乎不适合我的情况(当然我也可能是错的):

Passing JavaScript variable to Python

Parse JavaScript variable with Python

[编辑]
我正在使用 webkit.WebView,因为我必须在现有的 glade (libglade) 应用程序中显示它。

最佳答案

试试这个。它使用 addToJavaScriptWindowObject 方法将 QObject 添加到 QWebView 中。这将启用您的 Python 脚本和 Web View 中的 HMTL/Javascript 之间的通信。下面的示例将让您通过 JavaScript 提示将 javascript 全局变量 message 的值更改为您想要的任何值,然后每当您单击 Python Print Message 链接时,它将执行您的 python 代码,该代码将获取 javascript 值并打印它到控制台。

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_())

关于javascript - Python 和读取 JavaScript 变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13268947/

相关文章:

javascript - Polymer Project 加载缓慢

javascript - 如何获取strong标签中写入的内容?

Javascript/Jquery : . css 像素值

python - 重写实时 TCP/IP(第 4 层)(即套接字层)流

html - -webkit-column-count 给出了意想不到的结果

javascript - Sequelize - 如何包含自定义列详细信息

python - 在 Windows Server 上运行时,我收到 'unicode error' 但在我的电脑上运行正常

python - 计算另一个方法中的python方法调用

javascript - webkit executesql语句和循环问题

html - 如何删除 webkit 中损坏图像周围的边框?