【发布时间】:2017-09-27 08:22:42
【问题描述】:
有什么方法可以在 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 选择对象中至少有一个范围,等等。
【讨论】: