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