我的WebView
应用中有一个Android
,我想删除在此WebView中动态显示的div
。
有一个文本输入,用户可以在其中输入文本,如果用户键入超过2000个符号,则会出现div
,它表示用户插入了超过2000个符号,我想删除它。
为了删除静态元素,我注入了JavaScript
,它可以按预期工作,但是,对于动态元素,它不起作用。
这里有代码,我在onCreate方法中调用它:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url){
view.loadUrl("javascript:getValue()");
webView.loadUrl("javascript:(function() { " +
"document.getElementsByClassName('footer')[0].style.display='none'+
"document.getElementsByClassName('extra_information')[0].style.display='none';"+"})()" );`
}
});
webView.loadUrl("https://somewebsite");
}
答案 0 :(得分:0)
document.getElementsByClassName -返回具有任何给定类名的所有子元素的数组。
在您的Webview
中:使用Bind()监听Dom更新
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView web, String url) {
// TODO Auto-generated method stub
web.loadUrl("jquery:(function() { " +
$(\".extra_information\").bind(\"DOMSubtreeModified\", function() {
document.getElementsByClassName('extra_information')[0].style.display='none';
});+"})()" );
}
});
这是一个示例JSfiddle