2016-05-20 20 views
1

Ich möchte die Website laden, aber nicht divHeader zeigen möchte, habe ich mehrere Möglichkeiten ausprobiert und anscheinend der Code, den ich verwende, hat keine Fehler, weil keine Nachrichten in sind logcat ... Wie verstecke ich eine bestimmte Div.Elemente auf der Seite in Webview Android verstecken

package br.webview.com; 


import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Toast; 


    public class WebViewDevMobileActivity extends Activity { 

     private WebView myWebView; 

     private final String URL = "http://uniceu.prefeitura.sp.gov.br/"; 

     @SuppressLint("SetJavaScriptEnabled") 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.site); 

      if (!DetectConnection.checkInternetConnection(this)) { 

        Toast.makeText(getApplicationContext(), "Opa, parece que vc esta sem internet!", Toast.LENGTH_LONG).show(); 
       } else { 

      myWebView = (WebView) findViewById(R.id.webView1); 
      myWebView.getSettings().setJavaScriptEnabled(true);   
      myWebView.setWebViewClient(new WebViewClient() 
      { 
       @Override 
       public void onPageFinished(WebView view, String url) 
       { 
        myWebView.loadUrl("javascript:(function() { " + 
          "document.getElementById('divHeader')[0].style.display='none'; " + 
          "})()"); 
       } 
      }); 

      myWebView.loadUrl(URL); 
      myWebView.getSettings().setBuiltInZoomControls(true); 
     } 
     } 

     @Override 
     public void onBackPressed() { 
      if(myWebView.canGoBack()) { 
       myWebView.goBack(); 
      } else { 
       super.onBackPressed(); 
      }  
} 
    } 

image

Antwort

1

getElementById() kehrt einzelnen Knotenelement. Versuchen:

document.getElementById('divHeader').style.display='none' 

Um mehrere Elemente zu manipulieren wäre besser, zusätzliche Klasse Elemente hinzuzufügen, die in WebView (__hiddenInWebView in diesem Fall) ausgeblendet werden sollen, und dann:

var items = document.querySelectorAll('.__hiddenInWebView'); 
for (index in items) { 
    items[index].style.display = 'none'; 
} 

wenn Sie nicht modify DOM von Homepage (zusätzliche Klassen hinzufügen), dann bevölkern Array mit Elementen und verstecken sie in einer Schleife:

var items = []; 
items.push(document.querySelector('#first')); 
items.push(document.querySelector('#second')); 
for (index in items) { 
    items[index].style.display = 'none'; 
} 
+0

Excellent zu erreichen, es funktionierte sehr gut, was die richtige Syntax für die ich zwei Elemente verbergen? –

+0

Überprüfen Sie die bearbeitete Antwort –

+0

Wie Sie dies in meinem Code anwenden? Ich habe die Bewerbung nicht verstanden. –

0

ist es nicht möglich zu verweisen nur die ID der Set-Objekt dann zu sichtbar falsch

aq.id(R.id.divHeader).visibility(View.INVISIBLE); 

versucht auch findViewById verwenden, um den gleichen Effekt

+0

Er fragt abou t eingebettete HTML-IDs, nicht Android-View-XML –

Verwandte Themen