[英]Android Studio: Trying to remove HTML element in webview: blank page
I am trying to remove an HTML element in webview. 我正在尝试在webview中删除HTML元素。 Here is my code.
这是我的代码。 Everything compiles fine.
一切都编译良好。
I have looked at other questions and none of the answers work for me. 我看过其他问题,但没有答案对我有用。
// load web url
final WebView webView = (WebView) mRootView.findViewById(R.id.fragment_main_webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:(function() { " + "document.getElementsByTagName('publicTabs')[0].style.display=\"none\"; " + "})()");
}
});
webView.loadUrl(mUrl);
When I open the app on my phone, no webpage loads. 当我在手机上打开应用程序时,没有网页加载。 Just blank.
只是空白。 If I remove:
如果我删除:
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:(function() { " + "document.getElementsByTagName('publicTabs')[0].style.display=\"none\"; " + "})()");
}
});
the webpage loads. 网页加载。
Also, can someone tell me how to remove multiple HTML elements at the same time? 另外,有人可以告诉我如何同时删除多个HTML元素吗?
Any help would be appreciated. 任何帮助,将不胜感激。
Heres the answers: Also check if the element is a class or Id in the website. 答案如下:还要检查元素是否是网站中的类或ID。 Like the one below in my code.
就像下面的代码一样。
String url = "https://www.example.com";
final WebView webView = (WebView) findViewById(R.id.fragment_main_webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.getSettings().setSavePassword(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setSaveFormData(true);
webView.getSettings().setSupportZoom(false);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setSupportMultipleWindows(false);
webView.getSettings().setLightTouchEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:(function() { " +
"document.getElementsByClassName('header home_header')[0].style.display='none'; " +
"document.getElementsByClassName('glyphicon glyphicon-menu-hamburger')[0].style.display='none'; " +
"document.getElementsByClassName('searchBottomLinks_index searchBottomLinks_internal')[0].style.display='none'; " +
"document.getElementsByClassName('list-unstyled list-inline')[0].style.display='none'; " +
"document.getElementsByClassName('row')[0].style.display='none'; "+
"document.getElementsByClassName('header home_header')[0].style.display='none'; " +
"document.getElementsById('header-inner')[0].style.display='none'; " +
"document.getElementsById('fixed-header')[0].style.display='none'; " +
"document.getElementsByClassName('collapse navbar-collapse')[0].style.display='none'; " +
"document.getElementsByClassName('navbar navbar-inverse sidebars')[0].style.display='none'; " +
"document.getElementsByClassName('footer')[0].style.display='none'; " +
"document.getElementsByClassName('footer2')[0].style.display='none'; " +
"document.getElementsByClassName('container')[0].style.display='none'; " +
"document.getElementsByClassName('acad-slider')[0].style.display='none'; " +
"})()");
}
});
webView.loadUrl("https://www.example.com");
}
}
我遇到了同样的问题,并在javascript行之前添加了“ var x =”来解决此问题:
webView.loadUrl("javascript:var x = document.getElementsByClassName('header')[0].style.display='none';");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.