如何在webkit2gtk上获取所选文本

时间:2017-09-27 08:22:43

标签: webkit vala webkitgtk

有哪些方法可以在webkit2gtk上选择文字。我在Vala webkit2的API上找不到任何内容。

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

1 个答案:

答案 0 :(得分: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选择对象中至少有一个范围,依此类推。