javascript - 如何使用 webkit2gtk 连接 javascript 和 python?
问题描述
我正在使用webkit2gtk
. 我禁用了 gtk 标题栏,并且在 html 页面本身中有一个关闭和最小化按钮。
现在,我想在单击该关闭按钮时关闭窗口。之前我用过webkitgtk
,webkit可以感知html文件标题的变化,当标题变化时会关闭窗口(不只是关闭,这个方法还实现了最小化和拖动,鼠标拖动时会禁用拖动)将鼠标悬停在 html 中的按钮上)。
def title_changed(widget, frame, title):
print(title)
if title == "close":
Gtk.main_quit()
elif title == "minimize":
self.window.iconify()
self.webview.connect('title-changed', title_changed)
现在我想将代码移植到webkit2gtk
. 但是,看起来在title-changed
中可用的调用webkitgtk
已在 中删除webkit2gtk
。那么,如何处理关闭等事件,也就是当一个按钮被点击(由JS处理)时,如何让python对窗口做一些事情呢?
如果标题更改不再可用,还有什么其他选择?
解决方案
即使在 WebKit 1 中,通过页面标题从 Web 进程到 UI 进程的通信也有点可疑,但不幸的是,这在当时是最方便的选择。
在 WebKit 2 中,您可以使用WebView.send_message_to_page()
和UserContentManager.register_script_message_handler()
。
推荐阅读
- python - 如何在 Python 中生成递归函数
- c - 添加while循环时出现分段错误
- api - 应用程序接口管道代码
- c++ - 在 Qt ActiveX 中断言“id < 0”失败
- apache-spark - 如果在主键约束中给出了多个列,如何在 spark-jdbc 中读取表时对数据进行分区?
- python - 使用 nightrain 的 webapp 到桌面转换问题
- android - 签名的apk显示黑屏,而调试版本显示正常
- javascript - 如何阻止 babel 将“this”(用作 IIFE 参数)转换为“void 0”?
- winapi - 什么 Windows 消息导致部分区域重绘
- javascript - 如果没有足够的钱,我会一直得到 NaN,而不是登录到控制台并返回