gpt4 book ai didi

javascript - WebView 使用 javascript getElementsByClassName() 无法正确显示

转载 作者:行者123 更新时间:2023-11-29 19:03:39 25 4
gpt4 key购买 nike

我的 WebView 显示了我的 Android 应用程序的网页,但我不希望显示带有网站标题和广告的页眉。这是我编写的代码,我不确定为什么它没有删除我的 WebView 中的 header 。

webView = (WebView) findViewById(R.id.main_webview);
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:(function() { " +
"var head = document.getElementsByClassName('logo-wrapper colored-header').style.display='none'; " +
"})()");
}

});
String url = "http://davisclipper.com";



WebSettings.ZoomDensity zoomDensity = WebSettings.ZoomDensity.FAR;
webView.getSettings().setJavaScriptEnabled(true);

webView.getSettings().setDefaultTextEncodingName("utf-8");
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setDefaultZoom(zoomDensity);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.requestFocus(View.FOCUS_DOWN);
webView.setHorizontalScrollBarEnabled(false);

webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);

webView.loadUrl(url);

也许有一些明显的地方我做错了,但我浪费了很多时间试图找到答案。感谢您的帮助。

最佳答案

如果您确信您的 JavaScript 正在页面上执行,那么您的 JavaScript 代码中可能只有一个小错误。这就是它似乎什么都不做的原因。

我相信 document.getElementsByClassName 会返回一个 HTMLCollection,而不仅仅是一个元素。我不认为你可以在上面设置 style。相反,您可以获取 HTMLCollection 中的第一个元素并从那里开始。

尝试这样的事情。如果您只想用这些类隐藏一个元素,它应该可以工作。

document.getElementsByClassName('logo-wrapper colored-header')[0].style.display='none'

如果你最终需要用这些类隐藏多个元素,你可以试试这个:

document.getElementsByClassName('logo-wrapper colored-header').map(el => { el.style.display = 'none' })

关于javascript - WebView 使用 javascript getElementsByClassName() 无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47985133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com