提取jQuery的ready方法

(function(){
    document.ready = function(fn){
        if(typeof fn !== 'function'){
            throw 'Fn is not a function!';
        }
        function completed() {
            document.removeEventListener( "DOMContentLoaded", completed );
            window.removeEventListener( "load", completed );
            fn();
        }
        // 通过判断readyState状态如果已经加载完成直接执行,否则通过加载事件监听,由事件触发执行
        if ( document.readyState === "complete" ||
            ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
            // Handle it asynchronously to allow scripts the opportunity to delay ready
            window.setTimeout( fn );

        } else {

            // Use the handy event callback
            document.addEventListener( "DOMContentLoaded", completed );

            // A fallback to window.onload, that will always work
            window.addEventListener( "load", completed );
        }
    }
})();

提取于JQuery3.5.1的ready函数

posted @ 2021-12-21 12:49  冯丙见  阅读(35)  评论(0编辑  收藏  举报