0
什麼方法可用於選擇webkit2gtk上的文本。我無法在Vala webkit2的API上找到任何內容。如何獲取webkit2gtk上的選定文本
要求是在用戶在文本選擇後釋放鼠標後,在網頁上獲取選定的文本。
什麼方法可用於選擇webkit2gtk上的文本。我無法在Vala webkit2的API上找到任何內容。如何獲取webkit2gtk上的選定文本
要求是在用戶在文本選擇後釋放鼠標後,在網頁上獲取選定的文本。
獲取當前選擇的唯一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選擇對象中至少有一個範圍,依此類推。
非常感謝,我已經開始使用WebKit.WebView.run_javascript()作爲後備,並使用這裏描述的JavaScript函數[https://stackoverflow.com/questions/5379120/get-the-highlighted-selected-text ]獲取選擇文本。然後使用該函數的值設置可以使用WebView.get_title()方法取回的文檔標題。可惜的是,一個更原生的gtk控件並不適用於DOM訪問。接受這個答案。 –
啊,是的,我忘記了舊的冠軍頭銜/得到冠軍。它肯定是最早的vala發行版中缺少JavaScriptCore的最簡單的解決方法。 –