2016-05-20 20 views
1

私はサイトをロードしたいのですが、divHeaderを表示したくない、私はいくつかの方法を試したし、何もメッセージがで存在しないので、明らかに私が使用しているコードはミスを持っていませんlogcat ...特定の部門を非表示にするにはどうすればいいですか?隠す要素アンドロイド

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

答えて

1

getElementById()シングルノード要素を返します。試してみてください:

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

を複数の要素を操作するには、その後のWebView(この場合は__hiddenInWebView)の中に隠されるべき要素に追加のクラスを追加する方がよい、となります

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

あなたができない場合要素を持つ配列を移入し、ループ内でそれらを隠す、その後、(追加のクラスを追加します)WebページからDOMを変更します。

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

を達成するために、findViewByIdを使用してみてください目に見える偽

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

に設定オブジェクト、それは私が2つの要素を隠すためにどのような正しい構文は非常によく働いていましたか? –

+0

編集済みの回答を確認 –

+0

これを私のコードにどのように適用するのですか?私はアプリケーションを理解していませんでした。 –

0

は、それだけのIDを参照することはできませんその後も優れ同じ効果

+0

彼はアブー求めています埋め込まれたHTML IDではなく、アンドロイドビューのXML –