您好,欢迎访问一九零五行业门户网

javascript IE中的DOM ready应用技巧_javascript技巧

如果只需要对dom进行操作,那么这时就没必要等到页面全部加载了。我们需要更快的方法。
      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(){  }
其它类似信息

推荐信息