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 相关文章推荐
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
Jun 05 Javascript
Javascript获取CSS伪元素属性的实现代码
Sep 28 Javascript
简介AngularJS中使用factory和service的方法
Jun 17 Javascript
javascript显示倒计时控制按钮的简单实现
Jun 07 Javascript
JSP基于Bootstrap分页显示实例解析
Jun 12 Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 Javascript
详解vue组件开发脚手架
Jun 15 Javascript
AngularJS 事件发布机制
Aug 28 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
JS实现商品橱窗特效
Jan 09 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
Jan 20 Javascript
微信小程序组件生命周期的踩坑记录
Mar 03 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&&mysql)六
2006/10/09 PHP
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
Python多线程获取返回值代码实例
2020/02/17 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
九年级家长会邀请函
2014/01/15 职场文书
小学教师寄语大全
2014/04/03 职场文书
初级党校心得体会
2014/09/11 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
总经理岗位职责范本
2015/04/01 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android