我正在使用 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/