android - 从 webview android 加载的 url 中删除 div 标签

标签 android webview android-webview

我正在使用 web.loadUrl(url); 将 url 加载到 webview 中。现在我想在 url 完成加载时删除部分正文内容。

url中的数据如下:

<html>
<body>
<div class="header" data-role="header" data-theme="a"> 
 <a data-icon="back" class="header-icon" data-iconpos="notext" href="mymob-web-mobile/restricted/menu.xhtml" data-ajax="false"> <span>Back</span> </a> 
  <!--Title--> 
 <h1>???help.main.title???</h1> 
 </div> 

<div id="well">Hello World</div>
<body>
</html>

我想去掉url中的这部分

<div class="header" data-role="header" data-theme="a"> 
 <a data-icon="back" class="header-icon" data-iconpos="notext" href="mymob-web-mobile/restricted/menu.xhtml" data-ajax="false"> <span>Back</span> </a> 
  <!--Title--> 
 <h1>???help.main.title???</h1> 
 </div> 

经过一些研究,我得出了这个解决方案:

web= (WebView)findViewById(R.id.web);

        web.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url)
            {
                web.loadUrl("javascript:var con = document.getElementByTagName('<div class=\"header\" data-role=\"header\" data-theme=\"a\"> '); " +
                        "con.style.display = 'none'; ");
            }
        });


        web.clearCache(true);
        web.clearHistory();
        web.getSettings().setJavaScriptEnabled(true);
        web.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

        web.loadUrl(Constant.URL_AIDE, headers);

但是 div 元素没有被删除。

一个总结是,要删除的div

<div class="header" data-role="header" data-theme="a"> 
 <a data-icon="back" class="header-icon" data-iconpos="notext" href="mymob-web-mobile/restricted/menu.xhtml" data-ajax="false"> <span>Back</span> </a> 
  <!--Title--> 
 <h1>???help.main.title???</h1> 
 </div> 

预期结果

<html>
<body>


<div id="well">Hello World</div>
<body>
</html>

有什么想法吗

最佳答案

您可以使用 getElementsByClassName() 来访问 div。这是我的解决方案,请尝试一下。

web.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageFinished(WebView view, String url){

            web.loadUrl("javascript:document.getElementsByClassName('header')[0].style.display=\"none\";");

        }
    })

关于android - 从 webview android 加载的 url 中删除 div 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21524232/

相关文章:

android - 抽屉导航和多 Pane 布局

java - 破坏 Activity 导致服务丢失数据

ios - swift : TIC SSL Trust Error on loading self signed url in WebView

android - Chromium webview 似乎不适用于 Android applyOverrideConfiguration

android - 强制 Android WebView 在新浏览器中打开

Android WebView 不维护历史记录

android - 如何从 Gradle 控制 Android 模拟器

android - 为什么MediaPlayer对象给出异常?

android - WebView 太长。安卓

android - 如何通过点击号码从 webviewclient 打开拨号器 Activity ?