gpt4 book ai didi

javascript - onPageFinished Javascript WebView

转载 作者:搜寻专家 更新时间:2023-11-01 07:53:05 24 4
gpt4 key购买 nike

我觉得不得不问这个问题很愚蠢,但我一辈子都做不到。

所以我四处搜索并找到了很多关于在 WebViewClient 中使用 onPageFinished 函数的帮助、指南等,我的代码主要基于这些。

基本上我有一个函数应该加载网页,然后使用 onPageFinished 隐藏该页面上的某些元素。尽管它隐藏了整个页面并且 webview 显示文本“无”,但实际上并没有这样做。当我注释掉 onPageFinished 函数时,webview 加载页面就好了,这让我相信它必须是 javascript 但根据 w3c 网站,我的 javascript 对我想做的事情是正确的......

所以我的问题是,有没有人看到下面代码的问题和/或有人对可能实现我上述目标的其他事情有建议?

如能提供帮助,我们将不胜感激。

代码:

public class MainActivity extends AppCompatActivity{

private WebView browser;
private String url = "https://www.google.com";

< onCreate calls cleanPage and other stuff >

public void cleanPage() {
browser = (WebView) findViewById(R.id.webview);
browser.getSettings().setJavaScriptEnabled(true);
browser.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
browser.loadUrl("javascript:document.getElementById('lga').style.display='none';");
}
});
browser.loadUrl(url);
}
}

注意事项:

-以上以google为例,lga为goo​​gle banner div的id。

-browser 和 url 是全局的,因为一旦我让 cleanPage 工作,我将添加其他功能,这些功能将根据需要改变它们。

最佳答案

您需要在 javascript: URL 的末尾添加 void(0);。否则,WebView 将用 JS 评估的结果替换您的当前页面(在您的情况下,即字符串 "none")。

所以改变这个:

browser.loadUrl("javascript:document.getElementById('lga').style.display='none';");

到:

browser.loadUrl("javascript:document.getElementById('lga').style.display='none';void(0);");

关于javascript - onPageFinished Javascript WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32076726/

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