js判断页面是否加载完成

Posted YAZI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js判断页面是否加载完成相关的知识,希望对你有一定的参考价值。

1.javascript、jquery:

方法一:

window.onload=function(){

}

 

方法二:

//判断网页是否加载完成

document.onreadystatechange=function(){

        if(document.readyState=="complete"){

                document.getElementById(‘divpro‘).style.display=‘none‘

         }

}

方法三:

;(function($,undefined){

       $(function(){

                //your code

        });

})(window,jQuery);

注:以上的方法只能判断Dom 的加载状态,不能判断图片是否加载成功。如果碰到页面需要图片加载完成才能展现的情况,我们就没法搞定了。先提供两种方法判断图片是否加载完成。

 

 

 

3.使用onload的图片加载事件检测

;(function(){

    var pro=[‘‘,‘‘],//存放图片的路径的数组

           i=0,         //从第几张开始加载

           len=pro.length,   //图片的数量

          load=functon(src){

                   if(i<len){

                           var img_obj=new Image;

                             img_obj.src=src;

                             img_obj.onload=img_obj.onerror=load(pro[i++]);

                    }else{

                              //执行之后的代码

                            }

             };

         load(pro[i]);//开始加载

})()

注:这是使用onload和onerror检测判断,但有时候不能检测到图片是否加载完成,在使用过程中,他只能判断图片所有开始加载时就触发了,不过基本上可以满足需求。

 

 

 

4.使用complete的图片属性检测

;(function(){

       var pro=[‘‘,‘‘],    //存放图片的数组路径

             i=0,    //从第几张开始

             len=pro.length,   //图片的数量

             timer=null,    //计时器句柄

              load=function(src){

                         if(i<len){

                              var img_obj=new Image;

                              img_obj.src=src;

                              timer =setInterval(function(){

                                        if(img_obj.complete){

                                                    clearInterval(timer);

                                                     load(pro[i++])

                                           }

                                 },80);

                            }else{

                                       //执行之后的代码

                                    }

                  };

             load(pro[i]); //开始加载

})()

注:这里采用定时器不断检测图片的complete属性,这个比较完美,只有图片加载完成时,才回变成真,所以比较可靠,建议采用。

 

参考:https://jingyan.baidu.com/article/63acb44a376f5961fcc17ef0.html

以上是关于js判断页面是否加载完成的主要内容,如果未能解决你的问题,请参考以下文章

对于一个首次加载的页面。判断其Cookies是不是为空

selenium+python,如何判断一个页面已经加载完成?

如何判断网页是不是加载完毕

如何判断调用的外部JS文件加载完成?

JS或JQUERY如何判断A页面是从其他页面返回的,而不是首次加载

js中常用方法以及document.readyState 判断页面是不是加载完成 complete和interactive