`
helius1214
  • 浏览: 77786 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

javascript---IE中的DOM ready.

阅读更多
当我们想在页面加载之后执行某个函数,肯定会想到onload了

但onload在浏览器看来,就是页面上的东西全部都加载完毕后才能发生,但那就为时已晚了。

如果只需要对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();    
        }    
    };    
} 
分享到:
评论

相关推荐

    when-dom-ready:21世纪的$(document).ready()

    npm install --save when-dom-ready 或进行快速测试: < script src =" https://unpkg.com/when-dom-ready " > </ script > 用法 import whenDomReady from 'when-dom-ready' ; whenDomReady ( ) . ...

    javascript IE中的DOM ready应用技巧

    当我们想在页面加载之后执行某个函数,肯定会想到onload了 但onload在浏览器看来,就是页面上的东西全部都加载完毕后才能发生,但那就为时已晚了。

    Ajax for Web Application Developers(Ajax网站开发)

    The XML DOM Measuring the Benefits Chapter 2. The Request An In-Depth Look at XMLHttpRequest Creating the Object Asynchronous Data Transfers The Ready State ...

    ptd:一个小的javascript库

    它支持现代浏览器(IE 9+、Chrome、Safari、Firefox)。 用法: $ptd.ready()函数类似于 jQuery 的$(document).ready()函数。 当所有 DOM 内容被加载,然后不再监听该事件时,它会触发。 $ptd.ready(function()...

    artDialog_Demo

    1、 解决页面载入即弹出的情况造成水平对齐不正常的BUG(主要是dom ready事件 绑定) 2、 增加parent参数,支持对话框穿越框架在父页面弹出 v2.0.5 1、 剔除yesClose参数,如果要点击确定或者取消按钮不自动关闭...

    jquery1.9.1中文版

    // JSON RegExp(JavaScript Object Notation:JavaScript对象标记法正则表达式) rvalidchars = /^[\],:{}\s]*$/, rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g...

    dynamicFontSize.js:jQuery脚本,用于以px为单位调整DOM元素的大小。 这将在调整窗口大小时动态调整大小,类似于vw,vh,但使用纯JS解决方案。 随时使用,共享和修改

    dynamicFontSize.js 此JQuery脚本使您可以将vw,vh行为模拟为以px为单位定义的Font-Size,这样它将使用纯Javascript,因此您将能够在较旧版本的IE或某些不支持的设备中使用它CSS3完全没有。 只需在脚本中设置...

    slide.js:用于提供图片轮播效果

    当然不使用无缝滚动时调用的是css滚动动画#方法该js文件只暴露两个方法###slide.dom.Readydom加载完成后执行方法,例如:slide.dom.Ready(function(){ console.log('domReady');})###slide.createSlide(obj)obj={ id...

    js学习笔记大全

    * 如果 arg 是 function 则认为是 c$.ready 的缩写,在dom加载完成时执行。没有此参数则返回 c$ 对象。 * @param dom 需要选择的DOM对象,默认是 window.document * @return 没有arg参数时返回 c$ 对象,arg参数是...

    jquery插件使用方法大全

    并且可以在不同的js文件中做相同的操作,即$(document).ready (fn)可以在一个页面中重复出现,而不会冲突。基本上Jquery的很多plugin都是利用这个特性,正因为这个特性,多个plugin共同使用起来,在初始化时不会发生...

    vuejs在解析时出现闪烁的原因及防止闪烁的方法

    对于这个问题由于JavaScript去操作DOM,都会等待DOM加载完成(DOM ready)。对于vuejs、angularjs这些会在DOM ready完会才回去解析html view Template,所以对于Chrome这类快速的浏览器你会看见有闪烁的情况出现。而...

    AngularJS使用ng-Cloak阻止初始化闪烁问题的方法

    对于这个问题由于JavaScript去操作DOM,都会等待DOM加载完成(DOM ready)。对于angular会在DOM ready完会才回去解析html view Template,所以对于Chrome这类快速的浏览器你会看见有闪烁的情况出现。而对于IE7,8这...

    jquery1.9.1中文汉化版

    // JSON RegExp(JavaScript Object Notation:JavaScript对象标记法正则表达式) rvalidchars = /^[\],:{}\s]*$/, rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/...

    jetro:适用于所有浏览器的 Javascript

    快捷方式 (getElement) 和 DOM 执行 (ready) 样式管理 AJAX通讯 JSON 支持 (IE 7) 效果和动画 事件管理器 与js框架的兼容性 为什么不使用市场上众多 JavaScript 库中的一个,如果它们有很好的文档和功能呢? 我有...

    jQuery 知识点归纳

    jQuery是一个快速、简介的JavaScript库,宗旨是“write less,do more”。 官网:https://jquery.com 版本: 1x:兼容IE6、7、8,不再更新 2x:不兼容IE6、7、8,不再更新 3x:不兼容IE6、7、8,当前官网主要更新版本...

    WordPress 2.8 Theme Design.pdf

    Applying the DOM script to WordPress 224 Allowing only selected pages to display 226 Hiding pages the easy way with pageMash 226 Adding Flash to your theme 227 Flash in your theme 227 Handling ...

Global site tag (gtag.js) - Google Analytics