【问题标题】:Hide web page elements in Android WebView在 Android WebView 中隐藏网页元素
【发布时间】:2021-01-09 17:21:37
【问题描述】:

我有一个通过 webview 显示页面的 android 应用程序。但是网页有很多我不想显示的元素,这就是为什么我将它们隐藏如下:

  webView.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageFinished(WebView view, String url) {

                super.onPageFinished(view, url);
               view.loadUrl ("javascript:(function() { "+"document.getElementsByClassName('td-header-wrap td-header-style-1 ')[0].style.display='none'; "+ "document.getElementsByClassName('td-fix-index ')[1].style.display='none';  "+"document.getElementsById('td_uid_1_5ff8cc46439eb ')[0].style.display='none'; "+"document.getElementsByClassName('td-fix-index ')[0].style.display='none';  "+"document.getElementsByClassName('tdm-mobile-full')[0].style.display='none'; "+"document.getElementsByClassName('td-fix-index ')[0].style.display='none'; "+"} )()");

  }

是否可以使用 javascript 函数仅指示应显示的内容而不是指示要隐藏的内容

我可以隐藏整个主体,只显示一个 div 元素吗?我试过了,但它不起作用。

   view.loadUrl ("javascript:(function() { "+"document.getElementsByClassName('body')[0].style.display='none'; "+ "document.getElementsByClassName('td-fix-index ')[0].style.display='block';"+"} )()");

【问题讨论】:

    标签: javascript android webview


    【解决方案1】:

    试试这个。隐藏body 类,然后显示您想要的类。

    view.loadUrl("javascript:(function(){var p=document.getElementsByClassName('body')[0];p.style.visibility='hidden';p.style.width=0;p.style.height=0;p.style.padding=0;p.style.margin=0;document.getElementsByClassName('td-fix-index')[0].style.visibility='visible';)();");
    

    这是格式化的 JavaScript:

    (function() {
        var p = document.getElementsByClassName('body')[0]; 
        p.style.visibility='hidden';
        p.style.width=0;
        p.style.height=0;
        p.style.padding=0;
        p.style.margin=0;
        document.getElementsByClassName('td-fix-index')[0].style.visibility='visible';
    )();
    

    【讨论】:

    • 谢谢,但它不会隐藏正文。如果我使用它,它会隐藏正文(但它不显示 div 元素): view.loadUrl ("javascript:(function() { "+"document.getElementsByClassName('body')[0].style.display= 'none'; "+ "document.getElementsByClassName('td-fix-index ')[0].style.display='block';"+"} )()");
    • 你需要让body元素完全看不见吗?如果是这样,样式是标签还是类?
    • 根据您的回答,这可能有效。 var shown = document.getElementsByClassName('td-fix-index')[0].outerHTML; var hidden =  document.getElementsByClassName("body")[0]; hidden.outerHTML = shown; hidden.setAttribute("class", "different");
    猜你喜欢
    • 1970-01-01
    • 2019-04-17
    • 2013-01-04
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    • 2010-09-26
    相关资源
    最近更新 更多