如何在 webkit2gtk 上获取选中的文本

How to get selected text on webkit2gtk

webkit2gtk上的select文本有什么方法。我在 API 上找不到 Vala webkit2.

的任何内容

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

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

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

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

要使用此方法,您需要使用 vala 0.38,或将 JavaScriptCore VAPI 导入到您自己的项目中(就像 Geary 所做的那样),这样您就可以计算出return 值为。

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