IE中JavaScript DOM ready應(yīng)用技巧有哪些,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了陵城免費(fèi)建站歡迎大家使用!
有時(shí)候,如果我們只需要對(duì)DOM進(jìn)行操作,那么這時(shí)就沒必要等到頁面全部加載了,我們需要更快的方法。Firefox有DOMContentLoaded事件可以輕松解決,可惜的就是IE沒有。
MSDN關(guān)于JavaScript的一個(gè)方法有段不起眼的話,當(dāng)頁面DOM未加載完成時(shí),調(diào)用doScroll方法時(shí),會(huì)產(chǎn)生異常。那么我們反過來用,如果不異常,那么就是頁面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(); } }; }
這個(gè)函數(shù)是Diego Perini在07年就發(fā)布了這個(gè)方法,而且獲得了廣泛認(rèn)同,以至于現(xiàn)在許多開源框架都是借鑒這種方法,譬如jQuery中的ready。如果以后需要用到IE的DomReady,就是它了。用法:
IEContentLoaded( document.getElementById("test") , test ); function test(){ }
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。