2017-09-27 69 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的最簡單的解決方法。 –

相關問題