【问题标题】:How to properly detect hidden iframes?如何正确检测隐藏的 iframe?
【发布时间】:2015-04-17 06:47:26
【问题描述】:

我在页面中嵌入了所有 iframe 的 html。我想要一种准确的方法来检测哪些 iframe 是不可见的。可以通过放置透明图像,或将 iframe 大小设为零或设为 Seamless="seamless",或使用“invisible”属性值来实现不可见。有没有一种工具或方法可以用来快速识别人眼不可见的 iframe 数量。 谢谢

【问题讨论】:

    标签: html dom iframe


    【解决方案1】:

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

    您还需要检查它的任何角落是否有正坐标,因为浏览器不允许您滚动到负偏移量。

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

    可以实现隐形 [...] 制作无缝 =“无缝”

    这不会使 iframe 不可见

    【讨论】:

    • 正确。制作无缝剂量使 iframe 不可见.. 我还有一个问题,如果边界区域为负数,这意味着什么 {'y': -10000, 'x': 0},{'width': 300, 'height': 150}.
    • 这是偏移量+尺寸,面积不是负数。尽管这意味着 iframe 在可访问的视口之外。这确实是另一件需要考虑的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多