gpt4 book ai didi

javascript - 在 Android 的 WebView 中加载元素时隐藏该元素(或完全阻止其加载)

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

我正在 Android 的 WebView 中加载 URL,并且我想隐藏出现在很长页面顶部附近的元素。现在,我正在使用 javascript 隐藏 onPagefinished 方法中的元素,如下所示:

public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);

mWebView.loadUrl("javascript:(function() { " +
"document.getElementsByClassName('to-hide')[0].style.display='none';})()");
}

但是,这个元素位于页面顶部附近,而且我的页面相当长,因此这段代码可能要等 10 秒后才会执行。现在我需要能够在该元素出现时立即隐藏它,或者最好完全阻止它被加载,因为让它可见会导致严重的界面问题。

知道我该怎么做吗?

(顺便说一句,在 onPageStarted 中放入相同的代码似乎不起作用,因为我相信此时该元素尚未加载)。

最佳答案

好的,我发现最好的方法是使用 JSoup。我加载了文档,他们删除了必要的元素,最后将其加载到 WebView 中。我有两个担忧被证实是错误的:

1) 我担心添加 JSoup 会增加我的 apk 大小。这不是真的 - 大小增加非常小。

2) 我以为 JSoup 不会发布到 WebView,直到它拉出整个文档,但令我惊喜的是,JSoup 不会等待 - 看起来它只是获取 DOM,删除所需的元素,然后加载WebView,允许页面的其余部分加载到 View 中。

希望这对尝试这样做的人有用。这里和互联网上有很多此类 JSoup 代码的示例,因此我不会重复,但如果有人想要示例代码,请随时与我们联系。

关于javascript - 在 Android 的 WebView 中加载元素时隐藏该元素(或完全阻止其加载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37087277/

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