javascript - 在webview Android中隐藏页面上的元素

标签 javascript java android android-webview

我想加载网站,但不想显示 divHeader ,我尝试了几种方法,显然我使用的代码没有错误,因为 logcat 中没有消息...如何隐藏特定的 Div。

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

最佳答案

getElementById() 返回单个节点元素。尝试:

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

要操作多个元素,最好向应该隐藏在 WebView 中的元素添加额外的类(在本例中为 __hiddenInWebView),然后:

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

如果您不能从网页修改 DOM(添加其他类),则用元素填充数组并将它们隐藏在循环中:

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

关于javascript - 在webview Android中隐藏页面上的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37353066/

相关文章:

javascript - 从子窗口访问父窗口的内容

java - JPanel 上出现的视觉伪像

android - 将 GridLayout 元素移动到新行以适应 Kivy 中较小的屏幕

javascript - sendBackwards 不会传递某个对象(fabricjs)

javascript - 成语描述效果的可能性

java - 如何使用另一个类中的字符串数组?

Java slider 循环

android - 将 RecyclerView 和 Material Design 依赖项永久添加到 android studio 中的新项目

java - Android:将int转换为字符串并传递给方法

javascript - 如何动态设置 Angularjs select 的值?