Android webview: highlight specific word on page using javascript?

I use webview inside my android app. I would like to know if it is possible to highlight or emphasize a specific word / sentence / paragraph on a loaded page using code made in javascript?

thank

+3
source share
4 answers

You should look at this page . Make a view source.

They use pure Javascript - not even jQuery - to highlight specific words on a web page.

, , indexOf , . , + a <span class="highlighted"> + + </span>. . , DOM .

CSS .highlighted { background-color: yellow; }

+4

? titleWebView - WebView, html. searchText . , - , . , searchText, (- Nexus One). , .

titleWebView.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageFinished(WebView view, String url) {
        if (searchText != null && !searchText.equals("")) {
            int i = titleWebView.findAll(searchText);
            Toast.makeText(getApplicationContext(), "Found " + i + " results !",
                Toast.LENGTH_SHORT).show();
            try {
                Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
                m.invoke(titleWebView, true);
            } catch (Throwable ignored) {
            }
            searchText = "";
        }
    }
});
+14

findAll() ! findAllAsync() API16 :

webView.setWebViewClient(new WebViewClient(){
            @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
            @Override
            public void onPageFinished(WebView view, String url) {
                if (searchText != null && !searchText.equals("")) {
                    webView.findAllAsync(searchText);
                }
            }
        });
+1

Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
m.invoke(titleWebView, true);

.

findAll("search text")

Toast.

0
source

Source: https://habr.com/ru/post/1666876/


All Articles