2017-09-17 37 views
0

我花了很多时间寻找这个问题的解决方案,但我根本找不到它。我尝试下面的代码,但它似乎没有工作,所以普莱舍帮助我......如何在android的网页的html代码中隐藏一些dom元素?

public class MainActivity extends AppCompatActivity { 
      WebView webView; 
      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main); 
       webView = (WebView) findViewById(R.id.webview); 
       webView.getSettings().setJavaScriptEnabled(true); 
       webView.setWebViewClient(new WebViewClient(){ 
        @Override 
        public void onPageFinished(WebView view, String url) { 
         webView.loadUrl("javascript:(function() {document.getElementById('header')[0].style.display='none';})()"); 
        } 
       }); 
       webView.loadUrl(url); 
      } 
     } 
+0

使用'的document.getElementById( '报头')的style.display = '无';'代替'的document.getElementById('报头')[0] .style.display ='none';' – Rakib

+0

谢谢Rakib ....它真的为我工作...但在页面完全加载后隐藏div(标题)可以告诉我如何直接设置显示=“无”,然后显示在web视图??任何想法 ?? – shures

+0

您可否请您将我的答案标记为已接受答案,以便其他人可以在将来获得帮助。其实我不是Android专家:)所以我不知道该怎么做。也许你可以发布关于这个新问题的另一个问题。 – Rakib

回答

0

ID(头)应该是一个页面内是唯一的。但是,如果存在具有指定ID的多个元素,则getElementById()方法将返回第一个元素。

因此,使用

document.getElementById('header').style.display='none'; 

代替

document.getElementById('header')[0].style.display='none'; 
+0

谢谢无论如何我真的解决了它...再次感谢 – shures

+0

你好再次Rakib,...你会检查隐藏元素与类名称的代码.....它不工作.... public void onLoadResource( WebView视图,String url){“javascript:(function(){document.getElementsByClassName('logo')。style.display ='none';})()”); } – shures

+0

'var x = document.getElementsByClassName(“logo”); var i; (i = 0; i Rakib