如何在动态显示的WebView中删除div? (Android)

时间:2019-01-14 21:29:56

标签: android webview

我的WebView应用中有一个Android,我想删除在此WebView中动态显示的div

有一个文本输入,用户可以在其中输入文本,如果用户键入超过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 :(得分:0)

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