【发布时间】:2015-04-17 06:47:26
【问题描述】:
我在页面中嵌入了所有 iframe 的 html。我想要一种准确的方法来检测哪些 iframe 是不可见的。可以通过放置透明图像,或将 iframe 大小设为零或设为 Seamless="seamless",或使用“invisible”属性值来实现不可见。有没有一种工具或方法可以用来快速识别人眼不可见的 iframe 数量。 谢谢
【问题讨论】:
我在页面中嵌入了所有 iframe 的 html。我想要一种准确的方法来检测哪些 iframe 是不可见的。可以通过放置透明图像,或将 iframe 大小设为零或设为 Seamless="seamless",或使用“invisible”属性值来实现不可见。有没有一种工具或方法可以用来快速识别人眼不可见的 iframe 数量。 谢谢
【问题讨论】:
获取 iframe 的bounding rectangle,计算其面积和是否。如果面积大于零,则使用document.elementFromPoint() 探测每个角。如果没有一个角解析为元素,那么它可能是不可见的。这将检查它是否隐藏在其他元素之下或可能在其父容器的溢出框之外。
您还需要检查它的任何角落是否有正坐标,因为浏览器不允许您滚动到负偏移量。
请注意,这种方法并不完美,它可能无法涵盖一些边缘情况,例如透明的 <div> 和 pointer-events: none; 覆盖在 iframe 上实际上没有任何效果,因此 iframe 也可以被视为可见。
可以实现隐形 [...] 制作无缝 =“无缝”
这不会使 iframe 不可见
【讨论】: