js判斷網頁是否加載完畢----包括圖片


在做頁面的時候,經常碰到要在頁面加載完全之后再去展現。這時候我們會直接想到使用window.onload的方式,或者是采用Jquery的ready方法判斷,這在一定程度可以搞定。

 

window.onload方式

window.onload =function()
{
    //your code  
}

  

Jquery的ready方法

//: 判斷網頁是否加載完成     
           document.onreadystatechange = function () {      
               if(document.readyState=="complete") {            
                   document.getElementById('divprogressbar').style.display='none';      
               }     
           } 

 

;(function($,undefined){
    $(function(){
    //your code
    });
})(window.jQuery);

 

但是上面的方法只能判斷Dom的加載狀態,不能判斷圖片是否加載成功。如果碰到頁面需要圖片加載完成才能展現的情況,我們就無法搞定了。

現提供兩種方式判斷圖片是否加載完成。

 

使用onload的圖片加載事件檢測

 

 

這里是使用onload和onerror檢測判斷,但是有時候不能檢測到圖片是否加載完成,再使用過程中,我發現它只是判斷所有圖片開始加載時就觸發了,不過基本可以滿足需求。

 

使用complete的圖片屬性檢測

 

這里我們采用定時器不斷檢測圖片的complete屬性,這個比較完美,只有圖片確實加載完成時,才會變成真,所以比較可靠,建議采用。

 參考出處:http://jingyan.baidu.com/article/63acb44a376f5961fcc17ef0.html

====================================================================

在網上有很多關於判斷圖片是否已經加載完畢的文章,但是有的瀏覽器並不適合,下面小編給大家分享一些有關JavaScript判斷圖片是否已經加載完畢方法匯總,具體內容如下所示:

一.onload事件

通過監聽圖片的onload事件,可以判斷圖片是否已經加載完成,兼容所有的瀏覽器(w3c推薦方法),代碼示例如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html lang= "en" >
<head>
<meta charset= "UTF-8" >
<title>Document</title>
</head>
<body>
<script>
// 方法一:圖片已經下載完
document.getElementById( 'img1' ).onload = function (e){
e.stopPropagation();
alert(1);
}
</script>
</body>
</html>

二.判斷img對象(DOM)的complete屬性

當img加載完成之后,complete對象屬性將變為true,代碼示例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html lang= "en" >
<head>
<meta charset= "UTF-8" >
<title>Document</title>
</head>
<body>
<script>
// 方法二:img的complate屬性
var timer = setInterval( function (){
if (document.getElementById( 'img1' ).complete){
clearInterval(timer);
alert(1);
console.log(document.getElementById( 'img1' ).complete)
}
}, 10);
</script>
</body>
</html>

親測該方法同樣可兼容所有瀏覽器

三.onreadystatechange事件

在ie下,img對象與xhr對象一樣具有onreadystatechange事件,可以通郭建廷該事件判斷圖片是否加載完成,代碼示例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html lang= "en" >
<head>
<meta charset= "UTF-8" >
<title>Document</title>
</head>
<body>
<script>
document.getElementById( 'img1' ).onreadystatechange = function () {
if (document.getElementById( 'img1' ).readyState== "complete" ||document.getElementById( 'img1' ).readyState== "loaded" ){
alert(1);
}
}
</script>
</body>
</html>

該方法僅在ie下可用

參考出處:http://www.jb51.net/article/79233.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM