3

Web エンジンにローカルの html ファイルをロードしました。Web ビュー ページで指定された文字列を検索して強調表示する必要があります。
それを行う方法はありますか?

4

1 に答える 1

1

リフレクションの使用を気にしない場合は、Java コードでネイティブに行うことができます。

WebEngine には、タイプWebPageのプライベート フィールド ページがあり、これには次のメソッドがあります。このメソッドは、必要なことを正確に実行します。

// Find in page
public boolean find(String stringToFind, boolean forward, boolean wrap, boolean matchCase) {
    // ...
}

したがって、この find() メソッドにアクセスするには、次のことを行う必要があります。

WebView webView = new WebView();
WebEngine engine = webView.getEngine();

try {
    Field pageField = engine.getClass().getDeclaredField("page");
    pageField.setAccessible(true);

    WebPage page = (com.sun.webkit.WebPage) pageField.get(engine);
    page.find("query", true, true, false);
} catch(Exception e) { /* log error could not access page */ }
于 2018-03-18T16:19:20.533 に答える