javascript IE中的DOM ready应用技巧
javascript IE中的DOM ready应用技巧
发布时间:2016-12-30 来源:查字典编辑
摘要:如果只需要对DOM进行操作,那么这时就没必要等到页面全部加载了。我们需要更快的方法。Firefox有DOMContentLoaded事件可以...

如果只需要对DOM进行操作,那么这时就没必要等到页面全部加载了。我们需要更快的方法。

Firefox有DOMContentLoaded事件可以轻松解决,可惜的就是IE没有。

MSDN关于JSCRIPT的一个方法有段不起眼的话,当页面DOM未加载完成时,调用doScroll方法时,会产生异常。那么我们反过来用,如果不异常,那么就是页面DOM加载完毕了!

复制代码 代码如下:

functionIEContentLoaded(w,fn){

vard=w.document,done=false,

//onlyfireonce

init=function(){

if(!done){

done=true;

fn();

}

};

//pollingfornoerrors

(function(){

try{

//throwserrorsuntilafterondocumentready

d.documentElement.doScroll('left');

}catch(e){

setTimeout(arguments.callee,50);

return;

}

//noerrors,fire

init();

})();

//tryingtoalwaysfirebeforeonload

d.onreadystatechange=function(){

if(d.readyState=='complete'){

d.onreadystatechange=null;

init();

}

};

}

这个函数是DiegoPerini在07年就发布了这个方法,

而且获得了广泛认同,以至于现在许多开源框架都是借鉴这种方法,譬如JQuery中的ready。

如果以后需要用到IE的DomReady,就是他了。

用法:

IEContentLoaded(document.getElementById("test"),test);

functiontest(){}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类