img標籤加載失敗方法(onerror)、加載成功(onload)的方法、readystatechange事件、complete屬性

1、error事件(img標籤加載失敗的方法)

< img src=“123” :οnerrοr=“defaultImg()” />

function defaultImg(){     //地址錯誤時,直接刪除img標籤
   this.remove()
}
或者
function defaultImg(event){        //地址錯誤時,設置默認圖片
	 let img = event.srcElement;
	 img.src = ‘默認圖片地址’;
	 img.onerror = null; //防止閃圖
 }

2、onload事件(img標籤加載完成的方法)

< img src=“123” :οnload=“successImg()” />

function successImg(){
   //code ......
}

優點:簡單易用.
缺點:只能指定一個元素,javascipt代碼必須置於圖片元素的下方

3、readystatechange事件

<!DOCTYPE HTML>
<html> 
<head> 
<meta charset="utf-">
<title>img - readystatechange event</title>
</head> 
<body>
	<img id="img" src="http://pic.win.com/wallpaper/f/cbbaea.jpg">
	<p id="p">loading...</p>
<script type="text/javascript">
	img.onreadystatechange = function() {
	    if(img.readyState=="complete"||img.readyState=="loaded"){ 
	         p.innerHTML = 'readystatechange:loaded'
	    }
	}
</script>
</body>
</html>

readyState爲complete和loaded則表明圖片已經加載完畢。測試IE6-IE10支持該事件,其它瀏覽器不支持。

4、complete屬性

<!DOCTYPE HTML>
<html> 
<head> 
<meta charset="utf-8">
<title>img - complete attribute</title>
</head> 
<body>
	<img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg">
	<p id="p1">loading...</p>
<script type="text/javascript">
function imgLoad(img, callback) {
    var timer = setInterval(function() {
		   if (img.complete) {
		      callback(img)
		      clearInterval(timer)
		   }
  }, 50)
}
imgLoad(img1, function() {
    p1.innerHTML('加載完畢')
})
</script>
</body>
</html> 

輪詢不斷監測img的complete屬性,如果爲true則表明圖片已經加載完畢,停止輪詢。該屬性所有瀏覽器都支持。

參考鏈接:https://www.jb51.net/article/84136.htm
參考鏈接:https://blog.csdn.net/qq_39882537/article/details/90318296

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章