2017-09-27 12 views

答えて

1

現在の選択を取得するための唯一のAPIはDOM selection APIです。 DOM表現は、WebKit.WebViewウィジェットを持つアプリケーションプロセスとは別のWebプロセスのメモリに存在するため、WebKitGTK +でDOMにアクセスするのは少し面倒です。

両者の間に橋渡しするには、次のようなもの、WebKit.WebView.run_javascript()を呼び出すと通じウェブプロセスで実行される適切なJavaScriptコードを渡すことができます。

web_view.run_javascript("window.getSelection().getRangeAt(0).toString()") 

は、このメソッドを使用するには、Valaのを使用する必要があります0.38、またはJavaScriptCore VAPIをGearyのように独自のプロジェクトにインポートして、戻り値が何であるかを調べることができます。

これにいくつかのチェックを追加することをお勧めします:DOM選択オブジェクトに少なくとも1つの範囲などがあることにも注意してください。

+1

私はすでにWebKit.WebView.run_javascript()をフォールバックとして使用し始めており、ここで説明しているjavascript関数を使用しています[https://stackoverflow.com/questions/5379120/get-the-highlighted-selected-text ]を押して選択テキストを取得します。次に、その関数の値を使用して、WebView.get_title()メソッドを使用してフェッチできるドキュメントのタイトルを設定します。より多くのネイティブのgtkコントロールがDOMアクセスのためにすぐに利用できないことは間違いありません。これを答えとして受け入れる。 –

+0

ああ、私は古いセットタイトルについて忘れていた/タイトルトリックを取得します。 JavaScriptCoreが以前のvalaリリースから欠落しているのは、確かに最も簡単な回避策です。 –

関連する問題