2015-02-17 50 views
0

我有一个嵌入了一个带有Unity游戏的iframe的页面,直到用户实际点击iframe时才会加载游戏。这样可以确保页面加载速度快,并且没有正在运行的游戏没有正在播放(在一个页面上可能会有多个游戏)。当视线离开时(从iframe本身内部)刷新iframe

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

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

编辑:我发现这个刷新:self.location.reload();,现在我只需要能够检测iframe是否在iframe中查看。

回答

1

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

+0

啊耻辱:(我发现,这是不可能在iframe元素,但找不到任何关于iframe的东西本身。 – 2015-02-17 22:44:44

+0

啊这将是节约资源,像一个统一的游戏有用,但也是一个攻击媒介 – 2015-02-17 22:46:50

+0

是真的,所以可能最好,他们离开它,我必须看看我能在父页面上做些什么,谢谢! – 2015-02-17 22:47:44

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 
} 
+0

“注意:我对实际页面嵌入的控制有限iframe,这就是为什么它可以很好,如果这可以通过iframe显示的页面来完成的话。“ – 2015-02-17 22:48:33

+0

是的,点击我可以检测到,但是正如Tui正确地假设,我的意思是暗示域确实不同。 – 2015-02-17 22:49:26

+0

好吧,我认为'有限'可能会提示你有一些可访问性 – Jackson 2015-02-17 22:52:18