我在IE6完全呈現頁面之前運行的一些JavaScript有問題(也許還有其他版本,但現在只是測試IE6,Firefox似乎沒問題)。我可以通過調用這樣的window.onload
的JS解決這個問題:Javascript執行頁面渲染後IE6
window.onload = function(){doIt();}
然而,我關心的是事實,我將覆蓋其他任何可能已經在window.onload
。該代碼將用作庫的一部分,因此我不能保證window.onload
不會被其他人設置在其他地方。我將我的函數,而追加到onload
事件是這樣的:
window.onload += function(){doIt1();}
window.onload += function(){doIt2();}
但是,當我這樣做,只是doit2()
被調用。有沒有辦法爲頁面完全呈現時註冊一個事件處理程序?我的第二個想法是將我的代碼放入一個循環中,檢查運行前是否存在所有對象。但我很害怕這可能會鎖定瀏覽器。
只是爲了一些背景信息,我的代碼隱藏/顯示的iFrames。我知道我可以使用iFrame的onload
屬性,但我需要在調用代碼之前全部加載所有的iFrame。
社區的任何想法?預先感謝您的意見。
快速響應!幾乎和我想要說的一樣! 爲了清晰起見,您可能希望將示例用法放入代碼塊中。 值得注意的是,這將始終將新功能添加到被調用鏈的末尾。這可以簡單地通過改變第二部分中'func()'和'oldload()'調用的順序來改變,或者可能通過將第二個變量傳遞給函數來改變。 – PeterJCLaw 2010-01-25 21:02:53
+1完美!該死的,我喜歡這個網站! – 2010-01-25 21:21:00
耶,這個答案讓我超過10,000個代表:) – 2010-01-25 22:03:03