当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript IE中的DOM ready应用技巧

Javascript
让innerHTML的脚本也可以运行起来
nextSibling
限制复选框的最大可选数
onpropertypchange
让焦点自动跳转
显示、隐藏密码
textarea是否自动换行
鼠标图片振动代码
对联浮动广告效果
一段实时更新的时间代码
让广告代码不再影响你的网页加载速度
载入进度条 效果
二级连动菜单
如何实现浏览器上的右键菜单
html代码调试脚本
表单提交验证类
简单实用的网页表格特效
表单的一些基本用法与技巧
Javascript - HTML的request类
教学演示-UBB,剪贴板,textRange及其他

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 199 ::
收藏到网摘: n/a

当我们想在页面加载之后执行某个函数,肯定会想到onload了 但onload在浏览器看来,就是页面上的东西全部都加载完毕后才能发生,但那就为时已晚了。 如果只需要对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(){ }