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取得iframe中元素的几种方法
Jul 04 Javascript
jQuery打印指定区域Html页面并自动分页
Jul 04 Javascript
JavaScript中的无阻塞加载性能优化方案
Oct 10 Javascript
纯javascript实现图片延时加载方法
Aug 21 Javascript
jquery+css3实现会动的小圆圈效果
Jan 27 Javascript
jquery实现超简单的瀑布流布局【推荐】
Mar 08 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
Apr 01 Javascript
详谈commonjs模块与es6模块的区别
Oct 18 Javascript
使用vuepress搭建静态博客的示例代码
Feb 14 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
p5.js实现简单货车运动动画
Oct 23 Javascript
Vue仿Bibibili首页的问题
Jan 21 Vue.js
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
paypal即时到账php实现代码
2010/11/28 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
php的dl函数用法实例
2014/11/06 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
js 幻灯片的实现
2011/12/06 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
python中子类调用父类函数的方法示例
2017/08/18 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
简单实现python聊天程序
2018/04/01 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
python同步两个文件夹下的内容
2019/08/29 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
项目经理岗位职责
2013/11/11 职场文书
运动会表扬稿大全
2014/01/16 职场文书
淘宝活动策划方案
2014/02/06 职场文书
投标服务承诺书
2014/05/28 职场文书
2016情人节宣传语
2015/07/14 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
python某漫画app逆向
2021/03/31 Python
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记