我想加载网站,但不想显示 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();
}
}
}
最佳答案
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/