Как удалить div в WebView, который появляется динамически? (Android) - PullRequest
0 голосов
/ 15 января 2019

У меня есть WebView в моем Android приложении, я хочу удалить div, который динамически появляется в этом WebView.

Имеется текстовый ввод, где пользователь может набирать текст, если пользователь набирает более 2000 символов, появляется div, в котором говорится, что пользователь вставил более 2000 символов, я хочу удалить его.

Чтобы удалить статические элементы, я ввожу JavaScript, и он работает, как и ожидалось, однако с динамическими элементами он не работает.

Вот код, который у меня есть, я вызываю его внутри метода onCreate:

webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url){
                view.loadUrl("javascript:getValue()");
                webView.loadUrl("javascript:(function() { " +
                "document.getElementsByClassName('footer')[0].style.display='none'+ 
                "document.getElementsByClassName('extra_information')[0].style.display='none';"+"})()" );` 
                }
            });
            webView.loadUrl("https://somewebsite");
        }   

1 Ответ

0 голосов
/ 15 января 2019

document.getElementsByClassName - возвращает массив всех дочерних элементов, которые имеют любое из заданных имен классов.

В вашем Webview: используйте Bind () для прослушивания обновлений Dom

webView.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageFinished(WebView web, String url) {
        // TODO Auto-generated method stub
        web.loadUrl("jquery:(function() { " +
             $(\".extra_information\").bind(\"DOMSubtreeModified\", function() {
                document.getElementsByClassName('extra_information')[0].style.display='none';
             });+"})()" );
         }
    });

Вот пример JSfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...