javascript - onPageFinished Javascript WebView

标签 javascript android webview

我觉得自己问这个问题很愚蠢,但我一生都无法让它发挥作用。

因此,我四处搜索并找到了很多有关在 WebViewClient 中使用 onPageFinished 函数的帮助、指南等,我的代码很大程度上基于这些。

基本上,我有一个函数应该加载网页,然后使用 onPageFinished 隐藏该页面上的某些元素。尽管它隐藏了整个页面并且 web View 显示文本“none”,但实际上并没有这样做。 当我注释掉 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是google的banner div的id。

-浏览器和 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/

相关文章:

javascript - iframe 中找不到 div

javascript - 我正在使用node.js并为学生开发一种协作工具,我想在我的node项目中使用fabric js,但无法正常工作

android - MPAndroidChart:LineChart 填充不会在 XAxis 处停止

android - 如何编写代码来检查 Lollipop 的互联网连接?

android - Swift:WKWebView 添加像 Android 一样的 javascript 界面

javascript - Angular 填充 ng-repeat 和 ng-model

javascript 异常,在使用 VS 2013 安装 typescript 1.4 后未被调试器捕获

android - 如何解析谷歌地点 json

ios - ios 中的透明 webview 不工作

android - 某些机器人的 WebView 中未加载特定链接