Python GTK + webkit - 在gtk.main()之后插入JavaScript

PyN*_*New 2 python gtk webkit

我在终端尝试了这一切,一切都很好,但如果我在内部脚本中运行,我不能在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)
Run Code Online (Sandbox Code Playgroud)

怎么解决这个?提前致谢!

Fab*_*zio 6

嗯,这个问题在GUI编程中实际上非常经典,所以它就是解决方案.直接操作(例如,按下按钮)以及间接操作(webkit浏览器完成加载页面)需要始终启动位于不同进程或不同线程上的操作(函数).

在这种情况下,您可以使用对象"load-finished"提供的事件.webkitb

一旦网页完成加载,相关的功能将启动执行您的JS代码.这就是代码的样子:

def load_finished(webview, frame):
    js = 'alert("a");'
    b.execute_script(js)

b = webkit.WebView()
b.connect("load-finished", load_finished)
Run Code Online (Sandbox Code Playgroud)