我有一个嵌入iframe的网页,其中包含Unity游戏,在用户实际点击iframe之前,游戏尚未加载。这样可以确保页面快速加载,并且没有正在播放的游戏(一页上可以有多个游戏)。
现在我想知道,当用户滚动时是否可以刷新iframe?所以游戏停止运行,再次等待点击。是否可以仅更改iframe显示的页面? (所以不是包含iframe的页面。)
注意:我对嵌入iframe的实际页面的控制有限,这就是为什么如果这可以通过iframe显示的页面来完成的话。
修改:我发现这是为了刷新:self.location.reload();
,现在我只需要能够检测iframe中是否有iframe。
答案 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
}