文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>提取jQuery.ready(),页面DOM原生加载完毕执行onDOMReady()

提取jQuery.ready(),页面DOM原生加载完毕执行onDOMReady()

时间:2010-12-13  来源:姚佳

 

 1 (function(){
2 var isReady=false; //判断onDOMReady方法是否已经被执行过
3 var readyList= [];//把需要执行的方法先暂存在这个数组里
4 var timer;//定时器句柄
5 ready=function(fn) {
6 if (isReady )
7 fn.call( document);
8 else
9 readyList.push( function() { return fn.call(this);});
10 return this;
11 }
12 var onDOMReady=function(){
13 for(var i=0;i<readyList.length;i++){
14 readyList[i].apply(document);
15 }
16 readyList = null;
17 }
18 var bindReady = function(evt){
19 if(isReady) return;
20 isReady=true;
21 onDOMReady.call(window);
22 if(document.removeEventListener){
23 document.removeEventListener("DOMContentLoaded", bindReady, false);
24 }else if(document.attachEvent){
25 document.detachEvent("onreadystatechange", bindReady);
26 if(window == window.top){
27 clearInterval(timer);
28 timer = null;
29 }
30 }
31 };
32 if(document.addEventListener){
33 document.addEventListener("DOMContentLoaded", bindReady, false);
34 }else if(document.attachEvent){
35 document.attachEvent("onreadystatechange", function(){
36 if((/loaded|complete/).test(document.readyState))
37 bindReady();
38 });
39 if(window == window.top){
40 timer = setInterval(function(){
41 try{
42 isReady||document.documentElement.doScroll('left');//在IE下用能否执行doScroll判断 dom是否加载完毕
43 }catch(e){
44 return;
45 }
46 bindReady();
47 },5);
48 }
49 }
50 })();

 

使用方法如下:
ready(dosomething);//dosomething为已存在的函数
//
也可以通过闭包来使用
ready(function(){
//这里是逻辑代码
});

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载