首页 > 解决方案 > 如何使用 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对窗口做一些事情呢?

如果标题更改不再可用,还有什么其他选择?

标签: javascriptpythonwebkitgtk3

解决方案


即使在 WebKit 1 中,通过页面标题从 Web 进程到 UI 进程的通信也有点可疑,但不幸的是,这在当时是最方便的选择。

在 WebKit 2 中,您可以使用WebView.send_message_to_page()UserContentManager.register_script_message_handler()


推荐阅读