有什么方法可以在 webkit2gtk 上选择文本。我在 Vala webkit2的 API 上找不到任何东西。
要求是在用户选择文本后释放鼠标后,在网页上获取所选文本。
有什么方法可以在 webkit2gtk 上选择文本。我在 Vala webkit2的 API 上找不到任何东西。
要求是在用户选择文本后释放鼠标后,在网页上获取所选文本。
获取当前选择的唯一 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 选择对象中至少有一个范围,等等。