在颤动中从webview中删除html元素

Posted

技术标签:

【中文标题】在颤动中从webview中删除html元素【英文标题】:Deleting html element from webview in flutter 【发布时间】:2020-04-21 03:24:52 【问题描述】:

我尝试动态移除元素,但移除的元素仍显示在屏幕上,并在单击元素时被移除。

这是我使用的代码

 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);');

  

【问题讨论】:

【参考方案1】:

试试这个!

evaluateJavascript("document.getElementsByClassName('_b04pct_2709847')[0].style.display='none';");

我猜你忘记了“[0]”。我尝试在加载页面之前隐藏元素。你成功了吗?

【讨论】:

OP 使用 getElementById,与 getElementsByClassName 不同,它返回单个元素,因此不会忘记 [0]【参考方案2】:

evaluateJavascript("document.getElementById('_b04pct_2709847').style.display='none';")

【讨论】:

没有任何改变。可能是因为元素是动态创建的 那么你能通过其他属性定位元素吗?类、标签等?

以上是关于在颤动中从webview中删除html元素的主要内容,如果未能解决你的问题,请参考以下文章

在颤动中从列表中添加和删除对象

如何在颤动中从 ListView 中删除默认的 ScrollBar?

如何在颤动中从图形 QL 响应中删除类型名

如何在颤动中从列表中删除项目时重新加载列表

在颤动中从地图<日期时间,列表>中删除项目

在 WebView 上的 HTML 中从 https URL 加载图像