當網頁圖片不存在時的處理方法
阿新 • • 發佈:2019-01-28
例如,有以下程式碼:
經測試,上面的方法在IE各個版本及谷歌、火狐瀏覽器中都支援。
以上方法適合<img>較少的情況,如果要處理的<img>比較多的話,可以做一個全域性性的設定:
<img src="圖片的url地址" alt="圖片XX"/>
當在頁面顯示的時候,萬一圖片被移動了位置或者丟失的話,將會在頁面顯示一個帶X的圖片,很是影響使用者的體驗。即使使用alt屬性給出了"圖片XX"的提示資訊,也起不了多大作用。
其實,可以這樣處理:當圖片不存在的時候,會觸發onerror事件,我們可以在該事件中做一下補救的工作,比如:
1、讓這個圖片元素隱藏:
<img src="圖片的url地址" alt="圖片XX" onerror="this.style.display='none'"/>
2、用預設的圖片替換:
<img src="圖片的url地址" alt="圖片XX" onerror="this.src='預設圖片的url地址'"/>
注意:如果使用不當,在IE核心的瀏覽器下會造成死迴圈。比如:當【預設圖片的url地址】也載入不成功(比如網速比較慢的時候)或不存在的話,就會反覆的載入,最後造成堆疊溢位錯誤。 因此, 需要用下面兩種方法解決: a、更改 onerror 程式碼為其它處理方式或者確保 onerror 中的預設圖片足夠小,並且存在。 b、控制onerror事件只觸發一次,需要增加這句話:this.onerror=null; 增加後如下:<img src="圖片的url地址" alt="圖片XX" onerror="this.src='預設圖片的url地址;this.onerror=null'"/>
可以寫一個js指令碼,讓其遍歷頁面所有的<img>標籤,給每個標籤新增error事件,當任何地方的圖片不存在時都可以進行統一的處理。