本文實例講述了JS實現判斷圖片是否加載完成的方法。分享給大家供大家參考,具體如下:
1、onload事件
<!DOCTYPE HTML><html>  <head>    <title></title>  </head>  <body>    <img src="images/background.png">    <p>loading...</p>    <script type="text/javascript">      document.getElementsByTagName("img")[0].onload =function() {        document.getElementsByTagName("p")[0].innerHTML ='加載完成!';      }    </script>  </body></html>2、complete屬性
<!DOCTYPE HTML><html>  <head>    <title></title>  </head>  <body>    <img src="images/background.png">    <p>loading...</p>    <script type="text/javascript">      function imgLoad(img, callback) {        var timer = setInterval(function() {          if (img.complete) {            callback(img);            clearInterval(timer);          }        }, 50);      }      imgLoad(document.getElementsByTagName("img")[0], function() {        document.getElementsByTagName("p")[0].innerHTML = '加載完成!';      })    </script>  </body></html>3、onreadystatechange事件
<!DOCTYPE HTML><html>  <head>    <title></title>  </head>  <body>    <img src="images/background.png">    <p>loading...</p>    <script type="text/javascript">      document.getElementsByTagName("img")[0].onreadystatechange = function() {        if (this.readyState=="complete" || this.readyState=="loaded")          document.getElementsByTagName("p")[0].innerHTML = '加載完成';      }    </script>  </body></html>	注意:只有IE6-IE10支持onreadystatechange事件,其它瀏覽器不支持。
4、onerror事件
	網絡狀況不好或圖片不存在都可能觸發onerror事件。
<!DOCTYPE HTML><html>  <head>    <title></title>  </head>  <body>    <img src="images/notExistImg.png">    <p>loading...</p>    <script type="text/javascript">      document.getElementsByTagName("img")[0].onload =function() {        document.getElementsByTagName("p")[0].innerHTML ='加載完成!';      }      document.getElementsByTagName("img")[0].onerror =function() {        document.getElementsByTagName("img")[0].src = "images/background.png";      }    </script>  </body></html>	觸發onerror事件后,會為img指定一個新的圖片。
問題:
	新圖片存在則顯示新圖片,但若新圖片也不存在,則將繼續觸發onerror,導致頁面循環跳動。
解決:
	通過將onerror置為null,來防止頁面循環跳動。
<!DOCTYPE HTML><html>  <head>    <title></title>  </head>  <body>    <img src="images/notExistImg.png">    <p>loading...</p>    <script type="text/javascript">      document.getElementsByTagName("img")[0].onload =function() {        document.getElementsByTagName("p")[0].innerHTML ='加載完成!';      }      document.getElementsByTagName("img")[0].onerror =function() {        document.getElementsByTagName("img")[0].src = "images/backgeound.png";        document.getElementsByTagName("img")[0].onerror = null;        document.getElementsByTagName("p")[0].innerHTML ='加載失敗!';      }    </script>  </body></html>希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答