利用image對(duì)象的onerror事件來判斷鹤树,出錯(cuò)則更換image對(duì)象的src為默認(rèn)圖片的URL赴背。
<p>第一種情況:圖片存在椰拒,正常顯示
<img src=``"http://www.jb51.net/logo.gif"
onerror=``"javascript:this.src='http://www.jb51.net/logos.gif'"
/></p>
<p>第二種情況:圖片不存在,顯示默認(rèn)圖片
<img src=``"http://www.jb51.net/logoddd.gif"
onerror=``"javascript:this.src='http://www.jb51.net/logos.gif'"
/></p>
注意:如果使用不當(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'"``/>
下面是通過js的判斷 用javascript判斷指定圖片文件是否存在:
如判斷<img src="http://www.jb51.net/logos.gif">這個(gè)圖片地址是否存在.
如果不存在,隔幾秒重新探測(cè)此圖片,如果地址有效則,提示地址有效
<script type=``"text/javascript"``>
function
IsExist(url)
{
x = ``new
ActiveXObject(``"Microsoft.XMLHTTP"``)
x.open(``"HEAD"``,url,false)
x.send()
return
x.status==200
}
alert(IsExist(``"http://www.jb51.net/logos.gif"``));
</script>
圖片存在則上面的返回true
<SCRIPT language=``"javascript"``>
var
xmlhttp = ``new
ActiveXObject(``"Msxml2.XMLHTTP"``);
xmlhttp.Open(``"GET"``, ``"http://www.jb51.net/logos.gif"``, false);
xmlhttp.Send();
alert(xmlhttp.responseText);
</SCRIPT>
圖片存在則返回GIF89aX
<img src=``"http://www.jb51.net/logos2.gif"
onerror=``"alert('該圖片不存在!');"``>
因?yàn)閳D片不存在則返回該圖片不存在!