【发布时间】:2013-01-08 04:22:18
【问题描述】:
我想在 PyQt evaluateJavaScript() 中创建一个函数(或者可能是类似的),然后显示评估函数的结果。 真正的函数会大很多,而且可能不是字符串。
我只对如何在 PyQt 代码中创建函数并将结果放入 python 变量感兴趣。
为了更清楚,我举个例子:
这就是我想在loadFinishedhttp://jquery.com之后输入的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_()
【问题讨论】:
-
通过将其作为 get 或 post 参数传递
-
你能举个例子吗?
-
正确的 JQuery:
w = $('p').children().eq(0).html();
标签: javascript python qt pyqt