JS:如果可见或不可见,则从其他域中检测iframe

时间:2017-02-10 17:06:47

标签: javascript iframe visibility

我有一个问题,就是知道放置在HTML文档中的iframe是否可见(在首屏之上)。

我的网页:https://oneserver.com/index.html

<html>
<head>
</head>
<body>
<iframe src="https://otherserver.com/index.html></iframe>
</body>
</html>

其他网页(当父网页iframe可见时,该网页不应该执行此操作:

<html>
<head></head
<body>
<script>
if(document.isVisible()){document.style.background="red"}
</script>
</body>
</html>

我尝试使用Page Visibility API和一个jquery技巧,但到目前为止我找不到任何解决方案。你能帮我解决这个问题吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

为了确定它是否可见,它必须能够检测父窗口的大小以及该窗口滚动的距离。

标准的跨源安全性使得无法从框架内部实现这一目标。

您可以做的最好的事情是让父页面中的代码在框架进入或离开视图时检测,然后使用the postMessage API告诉框架中有关该事件的页面。