jQuery的domReady

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>jQuery的DOMready</title>
        <script>
            var domReady = function(fn){
                var completed = function() {
                    document.removeEventListener( "DOMContentLoaded", completed, false );
                    window.removeEventListener( "load", completed, false );
                    fn();
                };
                
                // 如果dom已经准备好了,那就开始咯。setTimeout第三个参数是为了传入同样的参数。为什么要setTimeout,是为了触发事件。
                if ( document.readyState === "complete" ) {
                    setTimeout( domReady,0,fn );
    
                } else {
                    document.addEventListener( "DOMContentLoaded", completed, false );
                    // 保险起见加个load事件咯。有时候因为浏览器缓存的原因导致,load比DOMContentLoaded执行还早。
                    window.addEventListener( "load", completed, false );
                }
                
                
            }
            domReady(function(){
                alert(document.querySelectorAll(".test")[0].innerHTML);
            });
        </script>
    </head>
    <body>
        jQuery的DOMready
        <div class="test">dom ready?</div>
    </body>
    <script>
            
        
        
        
    </script>
</html>
原文地址:https://www.cnblogs.com/samwu/p/4300386.html