提取jQuery的现成()方法单独使用。

你可以使用windows.onload onload事件,但似乎是页面上的所有内容(图片、iframe等资源)只能发生在加载。如果页面中有大图片,将在很长一段时间内执行。

如果你只需要操作DOM,并不是要等到所有的页面加载。我们需要一个更快的方法。Firefox有domcontentloaded事件可以很容易解决,但遗憾的是,不。

一种方法是在MSDN Jscript不显眼,当页面的DOM不加载的doscroll方法被调用时创建一个例外。然后我们用它反过来,如果不是,那么页面的DOM加载。所以Mozilla浏览器的DOM树,后有装准备domcontentloaded事件。Safari浏览器,有document.onreadystatechange事件。触发时,文档。发生完全可以视为DOM树。

即,当iframe里面,也有document.onreadystatechange事件。当IE是非iframe,它只能继续判断是否执行doscroll DOM加载。

在这个例子中,我们尝试执行document.documentelement.doscroll(右)在每间隔5毫秒。在IE8,一个非iframe窗口的外观也将有一个document.onreadystatechange事件,你也可以使用这一功能,当你建立你自己的框架。

复制代码代码如下所示:
(函数(){())
VaR准备= false; / /判断方法进行了ondomready
无功readylist = {}; / /方法要求此数组中存在的第一实施暂时
var定时器

就绪=函数(FN)
{
如果(准备)
fn.call(文档);
其他的
ReadyList.push(function(){ return fn.call(本);});
返回此;
}
ondomready =函数(){ var
对于(var i = 0;i < readylist.length;i++)
{
readylist {我}申请(文件);
}
readylist = null;
}
无功bindready =功能(EVT)
{
如果(已经)返回;
准备好=真;
ondomready.call(窗口);
如果(文件。removeEventListener)
{
Document.removeEventListener(domcontentloaded
}
如果(文件。attachevent)
{
document.detachevent onreadystatechange (
如果(窗口=窗口=顶部){
ClearInterval(定时器);
计时器= null;
}
}
};
如果(文件。addEventListener){
Document.addEventListener(domcontentloaded
}
如果(文件。attachevent)
{
document.attachevent onreadystatechange (
如果(( / /完成加载|)。测试(文档。readyState))
BindReady();
});
如果(窗口=窗口顶部)
{
定时器= setInterval(){()函数(
尝试
{
IsReady | | document.documentelement.doscroll(右); / /在IE中使用doscroll实现可以判断DOM加载。
}
捕捉(e)
{
返回;
}
BindReady();
},5);
}
}
});


该方法的使用如下:

复制代码代码如下所示:
准备(做); / /做为一个现有的功能
可以使用闭包
就绪(函数(){())
下面是逻辑代码
});