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 相关文章推荐
JavaScript 实现类的多种方法实例
May 01 Javascript
图片Slider 带左右按钮的js示例
Aug 30 Javascript
JavaScript事件委托实例分析
May 26 Javascript
jQuery原生的动画效果
Jul 10 Javascript
Javascript实现汉字和拼音互转的终极方案
Oct 19 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
May 19 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
Sep 08 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
浅析Vue 中的 render 函数
Feb 28 Javascript
Vue脚手架编写试卷页面功能
Mar 17 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
May 18 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中如何防止表单的重复提交
2013/08/02 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
php ajax实现文件上传进度条
2016/03/29 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
简述vue中的config配置
2018/01/23 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
python实现验证码识别功能
2018/06/07 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
django的csrf实现过程详解
2019/07/26 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
Python和Bash结合在一起的方法
2020/11/13 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
成人毕业生自我鉴定
2013/10/18 职场文书
加入学生会演讲稿
2014/04/24 职场文书
啦啦队口号大全
2014/06/16 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
2014年计生工作总结
2014/11/21 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书