0

有什么方法可以在 webkit2gtk 上选择文本。我在 Vala webkit2的 API 上找不到任何东西。

要求是在用户选择文本后释放鼠标后,在网页上获取所选文本。

4

1 回答 1

1

获取当前选择的唯一 API 是通过DOM selection API。在 WebKitGTK+ 中访问 DOM 有点尴尬,因为 DOM 表示存在于 Web 进程的内存中,它与具有 WebKit.WebView 小部件的应用程序进程是分开的。

为了在两者之间架起一座桥梁,您可以调用WebKit.WebView.run_javascript()并传递适当的 JavaScript 代码以在 Web 进程中执行,例如:

web_view.run_javascript("window.getSelection().getRangeAt(0).toString()")

要使用此方法,您需要使用 vala 0.38,或者将 JavaScriptCore VAPI 导入您自己的项目(就像 Geary 所做的那样),这样您就可以计算出返回值是什么。

另请注意,您可能需要对此添加一些检查:DOM 选择对象中至少有一个范围,等等。

于 2017-09-28T04:45:10.563 回答