??????我們在開發項目的實際運用中,經常會使用DOM ready應用這個技能,下面錯新技術頻道小編帶大家的javascript IE中的DOM ready應用技巧,一起來了解一下吧!
??????Firefox有DOMContentLoaded事件可以輕松解決,可惜的就是IE沒有。?
??????MSDN關于JSCRIPT的一個方法有段不起眼的話,當頁面DOM未加載完成時,調用doScroll方法時,會產生異常。那么我們反過來用,如果不異常,那么就是頁面DOM加載完畢了!
?
function?IEContentLoaded?(w,?fn)?{????????
????var?d?=?w.document,?done?=?false,????????
????//?only?fire?once????????
????init?=?function?()?{????????
????????if?(!done)?{????????
????????????done?=?true;????????
????????????fn();????????
????????}????????
????};????????
????//?polling?for?no?errors????????
????(function?()?{????????
????????try?{????????
????????????//?throws?errors?until?after?ondocumentready????????
????????????d.documentElement.doScroll('left');????????
????????}?catch?(e)?{????????
????????????setTimeout(arguments.callee,?50);????????
????????????return;????????
????????}????????
????????//?no?errors,?fire????????
????????init();????????
????})();????????
????//?trying?to?always?fire?before?onload????????
????d.onreadystatechange?=?function()?{????????
????????if?(d.readyState?==?'complete')?{????????
????????????d.onreadystatechange?=?null;????????
????????????init();????????
????????}????????
????};????????
}
這個函數是Diego?Perini在07年就發布了這個方法,
而且獲得了廣泛認同,以至于現在許多開源框架都是借鑒這種方法,譬如JQuery中的ready。
如果以后需要用到IE的DomReady,就是他了。
用法:
IEContentLoaded(??document.getElementById("test")?,?test??);
function?test(){??}
??????通過錯新技術頻道小編介紹的javascript IE中的DOM ready應用技巧,相信大家對這方面的內容都有了一些了解,如果你想了解更多javascript資訊記得收藏js.VeVb.com。