国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS實現判斷圖片是否加載完成的方法分析

2019-11-19 13:22:34
字體:
來源:轉載
供稿:網友

本文實例講述了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相關內容感興趣的讀者可查看本站專題:《JavaScript圖片操作技巧大全》、《JavaScript運動效果與技巧匯總》、《JavaScript切換特效與技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 常州市| 大冶市| 扎兰屯市| 泰来县| 邢台县| 滨州市| 山东省| 北辰区| 赣榆县| 仁化县| 永和县| 临安市| 中山市| 犍为县| 宝鸡市| 应城市| 奉新县| 佛山市| 乌拉特后旗| 天长市| 南阳市| 临安市| 梁平县| 松桃| 浦北县| 镇康县| 桐柏县| 乳山市| 武威市| 天长市| 拉孜县| 乌拉特前旗| 贵定县| 合阳县| 舟曲县| 天水市| 思南县| 元朗区| 泰顺县| 宝丰县| 云阳县|