新聞中心
這里有您想知道的互聯網營銷解決方案
IE中JavaScriptDOMready應用技巧
有時候,如果我們只需要對DOM進行操作,那么這時就沒必要等到頁面全部加載了,我們需要更快的方法。Firefox有DOMContentLoaded事件可以輕松解決,可惜的就是IE沒有。

推薦閱讀:Javascript解決常見瀏覽器兼容問題
MSDN關于JavaScript的一個方法有段不起眼的話,當頁面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年就發(fā)布了這個方法,而且獲得了廣泛認同,以至于現在許多開源框架都是借鑒這種方法,譬如jQuery中的ready。如果以后需要用到IE的DomReady,就是它了。用法:
- IEContentLoaded( document.getElementById("test") , test );
- function test(){ }
網頁題目:IE中JavaScriptDOMready應用技巧
轉載注明:http://www.dlmjj.cn/article/dphpsch.html


咨詢
建站咨詢
