我试图动态删除元素,但删除的元素仍然显示在屏幕上,并在单击元素时删除。
这是我使用的代码
onPageFinished: (url){
removeAds(url);
},
void removeAds(String url){
print("asdjkhjahsdk");
//_controller.loadUrl('javascript: var ad= document.getElementById("_b04pct_2709847"); ad.parentNode.removeChild(ad);');
_controller.evaluateJavascript('var ad= document.getElementById("_b04pct_2709847"); ad.parentNode.removeChild(ad);');
}
4条答案
按热度按时间v6ylcynt1#
evaluateJavascript("document.getElementById('_b04pct_2709847').style.display='none';")
iq3niunx2#
试试这个!
我猜您忘记了“[0]”。我尝试在加载页面之前隐藏该元素。是否成功?
3htmauhk3#
从webview_flutter 3.0.0开始我就是这么做的
作为一个
controller = Completer<WebViewController>();
的未来我在onProgress中这样做是因为我希望javascript在整个页面加载完成之前只运行一次。这也可以在onPageFinished中完成。有时在javascript运行之前标记并不存在,这就是为什么首选在onPageFinished中这样做。
bnlyeluc4#
THIS WORKS FOR ME (FLUTTER 3)
网络视图_抖动4.0.6 https://pub.dev/packages/webview_flutter我只是想合作,到目前为止文档中没有太多内容,我创建了自己的解决方案,基于控制器的事件,我创建了一个呈现条件,并在承诺解决时更新状态,以删除CircularProgressIndicator()并显示WebViewWidget(控制器:控制器),但在我做javascript更改之前。