為了美觀當(dāng)網(wǎng)頁圖片不存在時(shí)不顯示叉叉圖片
當(dāng)在頁面顯示的時(shí)候涧狮,萬一圖片被移動(dòng)了位置或者丟失的話反璃,將會(huì)在頁面顯示一個(gè)帶X的圖片荣月,很是影響用戶的體驗(yàn)笨奠。即使使用alt屬性給出了”圖片XX”的提示信息袭蝗,也起不了多大作用。
其實(shí)般婆,可以這樣處理:當(dāng)圖片不存在的時(shí)候到腥,會(huì)觸發(fā)onerror事件,我們可以在該事件中做一下補(bǔ)救的工作蔚袍,比如:
1乡范、讓這個(gè)圖片元素隱藏:
<img src="圖片的url地址" alt="圖片XX" onerror="this.style.display='none'"/>
2、用默認(rèn)的圖片替換:
<img src="圖片的url地址" alt="圖片XX" onerror="this.src='默認(rèn)圖片的url地址'"/>
注意:如果使用不當(dāng)啤咽,在IE內(nèi)核的瀏覽器下會(huì)造成死循環(huán)晋辆。比如:當(dāng)【默認(rèn)圖片的url地址】也加載不成功(比如網(wǎng)速比較慢的時(shí)候)或不存在的話,就會(huì)反復(fù)的加載闰蚕,最后造成堆棧溢出錯(cuò)誤栈拖。
因此, 需要用下面兩種方法解決:
a没陡、更改 onerror 代碼為其它處理方式或者確保 onerror 中的默認(rèn)圖片足夠小涩哟,并且存在。
b盼玄、控制onerror事件只觸發(fā)一次贴彼,需要增加這句話:this.onerror=null; 增加后如下:
<img src="圖片的url地址" alt="圖片XX" onerror="this.src='默認(rèn)圖片的url地址';this.onerror=null"/>
經(jīng)測試,上面的方法在IE各個(gè)版本及谷歌埃儿、火狐瀏覽器中都支持器仗。