向外看时刷新iframe(从iframe本身内部)

时间:2015-02-17 22:18:18

标签: javascript html iframe

我有一个嵌入iframe的网页,其中包含Unity游戏,在用户实际点击iframe之前,游戏尚未加载。这样可以确保页面快速加载,并且没有正在播放的游戏(一页上可以有多个游戏)。

现在我想知道,当用户滚动时是否可以刷新iframe?所以游戏停止运行,再次等待点击。是否可以仅更改iframe显示的页面? (所以不是包含iframe的页面。)

注意:我对嵌入iframe的实际页面的控制有限,这就是为什么如果这可以通过iframe显示的页面来完成的话。

修改:我发现这是为了刷新:self.location.reload();,现在我只需要能够检测iframe中是否有iframe。

2 个答案:

答案 0 :(得分:1)

您无法检测iframe是否位于外部网站的视口中,因为您无法从iframe中访问父域的文档。这将需要确定页面上iframe元素的位置。

答案 1 :(得分:0)

如果iframe src与父窗口在同一个域内,则可能。在您的游戏页面中,您可以在父窗口中检测到滚动事件,如下所示:

var parent = window.parent;
parent.onscroll = function (e) {  
   // the parent window has scrolled,
   // you can pause the game here
} 

然后,您只需添加点击事件即可检测用户点击iframe。

window.onclick = function() {
   // user has clicked on the iframe,
   // you can initialise the game now
}