如何将JavaScript函数的结果放入python变量中。 PyQt的

时间:2013-01-08 04:22:18

标签: javascript python qt pyqt

我想在PyQt evaluateJavaScript()中创建一个函数(或者可能是类似函数),而不是显示求值函数的结果。 实际功能会更大,也可能不是字符串。

我对如何在PyQt代码中创建函数以及将结果导入python变量感兴趣。

为了更清楚,我会举个例子: 这是我想在http://jquery.comloadFinished之后输入的js:

w = document.getElementsByTagName('p')[0];
w.innerHTML

如果我在浏览器控制台中执行此操作,我将获得输出:

"jQuery is a fast and concise JavaScript Library ...... blah blah blah"

我想将此输出存储在变量中。

#!/usr/bin/env python

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
import os, sys, signal
from urllib2 import urlopen

class GBot(QWebView):

    def __init__(self):
        QWebView.__init__(self)
        self.setPage(BrowserSettings())
        #self.jquery = get_jquery()
        self.load(QUrl('http://jquery.com'))
        self.frame = self.page().currentFrame()

    def _loadFinished(self, ok):
        doc = self.frame.documentElement()
        #doc.evaluateJavaScript(self.jquery)
        r = doc.evaluateJavaScript('''w = document.getElementsByTagName('p')[0]; w.innerHTML''')
        print r #want to do something like this


if __name__ == '__main__':
    app = QApplication(sys.argv)
    bot = GBot()
    bot.show()
    if signal.signal(signal.SIGINT, signal.SIG_DFL):
        sys.exit(app.exec_())
    app.exec_()

1 个答案:

答案 0 :(得分:7)

在此示例中,我首先将myWindow javascript对象传递给主框架,然后在self时调用evaluateJavaScript

loadFinished