zoukankan      html  css  js  c++  java
  • 学习写domready

    原视频参考http://www.imooc.com/learn/488

    --博主个人尝试学习写的--

    /**
     * Created by ty on 2016/1/3.
     */
    //尝试自己写domready函数
    function myReady(fn){
        /*fn是ready后执行的函数*/
        if(document.addEventListener){
            document.addEventListener("DOMContentLoaded", fn, false);
        }else {
            IEDomReady(fn);
        }
    
        /*IE模拟DOMContentloaded*/
        function IEDomReady(fn){
            var d = window.document;
            var done = false;
    
            //只执行1次用户的回调函数init();
            function init(){
                if(!done){
                    done = true;
                    fn();
                }
            };
    
            (function(){
                try {
                    //DOM树为创建完成之前调用doScroll会抛出错误
                    d.documentElement.doScroll("left");
                }catch(e){
                   //延迟再试一次
                   //arguments.callee是调用自身
                    setTimeout(arguments.callee,50);
                    return;
                }
                // 没有错误就表示DOM树创建完毕,然后立马执行用户回调
                init();
            })();
    
            //监听document的加载状态
            d.onreadystatechange = function(){
                //如果用户是在domReady之后绑定的函数,就立马执行
                if(d.readyState == "complete"){
                    d.onreadystatechange = null;
                    init();
                }
    
            }
        }
    
    }
  • 相关阅读:
    多线程 -- H2O 生成、交替打印字符串
    打印零与奇偶数
    h2数据库的使用
    rtx应用和开发
    MongoDB--副本集
    Python 推导式
    Bootstrap组件
    Python logging日志的自动分割
    python watchdog监控文件修改
    Linux流量监控iftop
  • 原文地址:https://www.cnblogs.com/hamsterPP/p/domReady.html
Copyright © 2011-2022 走看看