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实现select添加实现后台权限添加的效果
May 28 Javascript
JavaScript判断密码强度(自写代码)
Sep 06 Javascript
JS 实现导航栏悬停效果(续2)
Sep 24 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
Jan 31 Javascript
JavaScript中的闭包介绍
Mar 15 Javascript
js验证框架实现代码分享
May 18 Javascript
Node.js使用gm拼装sprite图片
Jul 04 Javascript
详解node+express+ejs+bootstrap构建项目
Sep 27 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
Nov 03 Javascript
JS实现简易贪吃蛇游戏
Aug 24 Javascript
JavaScript逻辑运算符相关总结
Sep 04 Javascript
jQuery实现增删改查
Dec 22 jQuery
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
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
小程序实现列表倒计时功能
2021/01/29 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python+Wordpress制作小说站
2017/04/14 Python
python+pygame简单画板实现代码实例
2017/12/13 Python
python+opencv实现动态物体识别
2018/01/09 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
C#面试问题
2016/07/29 面试题
大学军训感言800字
2014/02/27 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
贷款承诺书
2015/01/20 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
2016年元旦主持词
2015/07/06 职场文书
青年志愿者活动感想
2015/08/07 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
关于MySQL中explain工具的使用
2023/05/08 MySQL