我在终端尝试了这一切,一切都很好,但如果我在内部脚本中运行,我不能在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)
怎么解决这个?提前致谢!
嗯,这个问题在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)
| 归档时间: |
|
| 查看次数: |
2684 次 |
| 最近记录: |