如何正确检测隐藏的iframe?

时间:2015-02-16 17:15:28

标签: html dom iframe

我拥有页面中嵌入的所有iframe的html。我想要一种准确的方法来检测哪些iframe是不可见的。隐身可以通过放置透明图像,或使iframe大小为零或使无缝=“无缝”,或使用“不可见”属性值来实现。是否有工具或方法可用于快速识别人眼不可见的iframe数量。 感谢

1 个答案:

答案 0 :(得分:2)

获取iframe' bounding rectangle,计算其面积以及是否。如果该区域大于零,则使用document.elementFromPoint()探测每个角落。如果没有角落解析为元素,那么它可能是不可见的。这会检查它是隐藏在其他元素下面还是可能隐藏在其父容器的溢出框之外。

您还需要检查其任何一个角是否具有正坐标,因为浏览器不允许您滚动到负偏移。

请注意,此方法并不完美,有些边缘情况可能无法覆盖,例如覆盖在iframe上的透明<div> pointer-events: none;实际上没有效果,因此iframe也可能被视为可见。

  

可以实现隐形无缝的&#34;无缝&#34;

这不会使iframe不可见