我想知道是否可以在WebView中仅显示网站的某些部分。例如,我的网站上有以下html:
<html>
<body>
<div id="1">ID 1</id>
<div id="2">ID 2</id>
<div id="3">ID 3</id>
</body>
</html>
可以仅在WebView中显示,例如,id =“3”的div的内容? 我的代码是WebWiew:
WebViewClient WebClient = new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
};
WebView myWebView = (WebView) findViewById(R.id.webView1);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.setWebViewClient(WebClient);
myWebView.loadUrl("https://www.example.com");
答案 0 :(得分:10)
您可以通过扩展WebViewClient并注入一些将呈现您的网页的JavaScript来实现这一目标
public class MyWebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:your javascript");
}
}
.........
final MyWebClient myWebViewClient = new MyWebClient();
mWebView.setWebViewClient(myWebViewClient);
对于隐藏元素,请使用view.loadUrl("javascript:document.getElementById(id).style.display = 'none';)
更多信息In Android Webview, am I able to modify a webpage's DOM?
答案 1 :(得分:2)
这里要了解的最基本的事情是我们在web html文件中引用的元素是类还是 id 。如果是 id ,则 getElementById
可以正常运行。如果是类,则需要 getElementsByClassName
。
以下是我正在使用的示例。
&#xA;&#xA; myWebView.loadUrl&#xA; (“javascript:(function(){”+&#xA;“document.getElementsByClassName('header_wrapper')[0] .style.display ='none';”+&#xA;“document.getElementsByClassName('footer- contact')[0] .style.display ='none';“+&#xA;”document.getElementsByClassName('navbar-header')[0] .style.display ='none';“+&#xA; “document.getElementsByClassName('footer-social')[0] .style.display ='none';”+&#xA;“document.getElementById('footer_bottom')。style.display ='none';”+& #xA;“document.getElementById('footer_content')。style.display ='none';”+&#xA;“document.getElementById('core_mobile_menu')。style.display ='none';”+&#xA ;“document.getElementById('catapult-cookie-bar')。style.display ='none';”+&#xA;“}&#xA;)()”);&#xA;
< / PRE>&#XA;