2015-02-17 49 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