我在终端中尝试了这个,一切正常,但是如果我在脚本内运行这个,我无法在 gtk.main() 之后插入 JavaScript
import gtk
import webkit
w = gtk.Window()
b = webkit.WebView()
w.add(b)
b.open('http://example.com')
w.show_all()
gtk.main() # this I don`t run inside terminal
#and after showing window I want to insert some JavaScript code
js = 'alert("a");'
b.execute_script(js)
如何解决这个问题?提前致谢!
嗯,这个问题实际上在 GUI 编程中非常经典,所以它就是解决方案。直接操作(例如按下按钮)和间接操作(webkit 浏览器完成加载页面)始终需要启动位于不同进程或不同线程上的操作(函数)。
在这种情况下,您可以使用"load-finished"
事件由webkit
object b
.
一旦网页加载完成,相关函数就会启动执行 JS 代码。代码如下所示:
def load_finished(webview, frame):
js = 'alert("a");'
b.execute_script(js)
b = webkit.WebView()
b.connect("load-finished", load_finished)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)