2017-09-27 35 views

回答

1

获取当前选择的唯一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),这样您就可以计算出返回值是什么。

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

+1

非常感谢,我已经开始使用WebKit.WebView.run_javascript()作为后备,并使用这里描述的JavaScript函数[https://stackoverflow.com/questions/5379120/get-the-highlighted-selected-text ]获取选择文本。然后使用该函数的值设置可以使用WebView.get_title()方法取回的文档标题。可惜的是,一个更原生的gtk控件并不适用于DOM访问。接受这个答案。 –

+0

啊,是的,我忘记了旧的冠军头衔/得到冠军。它肯定是最早的vala发行版中缺少JavaScriptCore的最简单的解决方法。 –

相关问题