代码之家  ›  专栏  ›  技术社区  ›  Lucky_girl

如何删除动态显示的WebView中的div?(安卓)

  •  0
  • Lucky_girl  · 技术社区  · 7 年前

    我有一个 WebView 在我的 Android 应用程序,我想删除 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 回复  |  直到 7 年前
        1
  •  0
  •   rafsanahmad007    7 年前

    文件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