2010-03-03 81 views
3

我有一個有Iframe的頁面。在該Iframe中,有六個iframe。當我使用是否window.onload意味着整個內容已被加載?

window.onload 

document.observe(window, 'load', func) // of PrototypeJs, 

是否意味着iFrame和其他6個I幀內容中的所有內容已經被加載?

如果答案不是,那麼我如何確定我的所有iframe內容都已加載。

[iframe中的iframe沒有任何src。我正在填充數據庫內容中的這些Iframe。]

謝謝。

回答

2

iframes/frames中的資源存在於它們自己的上下文中,並且您不能在父文檔中使用window.onload。框架中的每個文檔都需要告訴父文檔它們已經加載。

一種方法是將父文檔中的isLoaded標誌設置爲falsy值,並在每個子文檔中設置window.onload事件,將其isLoaded標誌設置爲truthy。在父文檔中有一個setInterval檢查這些標誌,並且一旦設置了所有標誌,就做你想做的事情。

有可能是一百萬更好的解決方案^^我只是建議一個粗略的藍圖。

+0

好主意。但正如我所說的那樣,六個iframe中的一個沒有src屬性值。在那種情況下,我可以設置onload事件嗎? – Hoque 2010-03-03 09:52:39

+0

如果iframes沒有src,那麼只要下載了所有鏈接的資源,window.onload事件就會觸發。我想你然後在window.onload事件中設置iframe的src或? – anddoutoi 2010-03-03 10:35:14

+0

+1謝謝,喜歡你的想法:) – 2010-03-03 13:50:23

2

爲什麼,你總是可以在javascript中實現一個小計數器,然後在完成加載時讓每個iframe通知父框架。櫃檯,一旦所有六個框架都喊出來,他們就可以做任何你想做的事情。應該不是太難,儘管也許有更多的方式來做到這一點。讓我們看看其他人爲你做了什麼。祝你好運!

+0

感謝您的快速回復。 – Hoque 2010-03-03 09:40:39

+0

你的回答對我也有幫助,但是當我點擊你的回答時,他人的'檢查'記號就消失了。我怎樣才能將你標記爲已回答。謝謝。 – Hoque 2010-03-03 10:50:20

+0

好吧,你只能標記一個接受的答案。如果你喜歡某人的貢獻,只需點擊向上箭頭給我們一些代表點:-)我很高興我可以提供幫助。 – 2010-03-03 13:29:37

相關問題