javascript IE中的DOM ready应用技巧


Posted in Javascript onJuly 23, 2008

 如果只需要对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(){  }

Javascript 相关文章推荐
jquery multiSelect 多选下拉框
Jul 09 Javascript
javascript定义函数的方法
Dec 06 Javascript
使用jquery为table动态添加行的实现代码
Mar 30 Javascript
Jquery图形报表插件 jqplot简介及参数详解
Oct 10 Javascript
jquery通过visible来判断标签是否显示或隐藏
May 08 Javascript
readonly和disabled属性的区别
Jul 26 Javascript
《javascript少儿编程》location术语总结
May 27 Javascript
使用JS代码实现俄罗斯方块游戏
Aug 03 Javascript
原生JS实现轮播图效果
Oct 12 Javascript
微信小程序页面调用自定义组件内的事件详解
Sep 12 Javascript
javascript实现画板功能
Apr 12 Javascript
JS图片预加载三种实现方法解析
May 08 Javascript
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 #Javascript
用JavaScript实现UrlEncode和UrlDecode的脚本代码
Jul 23 #Javascript
用js遍历 table的脚本
Jul 23 #Javascript
JavaScript 版本自动生成文章摘要
Jul 23 #Javascript
javascript 支持ie和firefox杰奇翻页函数
Jul 22 #Javascript
IE8 引入跨站数据获取功能说明
Jul 22 #Javascript
兼容多浏览器的字幕特效Marquee的通用js类
Jul 20 #Javascript
You might like
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
浅谈php和.net的区别
2014/09/28 PHP
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
Vue登录注册并保持登录状态的方法
2018/08/17 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Python3读取zip文件信息的方法
2015/05/22 Python
python爬取内容存入Excel实例
2019/02/20 Python
python如何求100以内的素数
2020/05/27 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
幼儿发展评估方案
2014/06/11 职场文书
运动员获奖感言
2014/08/15 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
优秀教研组申报材料
2014/12/26 职场文书
2015年林业工作总结
2015/05/14 职场文书
追讨欠款律师函
2015/05/27 职场文书