用Javascript判斷圖片是否存在,不存在則顯示默認圖片的代碼

利用image對象的onerror事件來判斷,出錯則更換image對象的src爲默認圖片的URL。 javascript

<p>第一種狀況:圖片存在,正常顯示
 
<img src="http://www.jb51.net/logo.gif" 
onerror="javascript:this.src='http://www.jb51.net/logos.gif'" /></p> 
<p>第二種狀況:圖片不存在,顯示默認圖片
 
<img src="http://www.jb51.net/logoddd.gif" 
onerror="javascript:this.src='http://www.jb51.net/logos.gif'" /></p> 

 注意:若是使用不當,在IE內核的瀏覽器下會形成死循環。好比:當【默認圖片的url地址】也加載不成功(好比網速比較慢的時候)或不存在的話,就會反覆的加載,最後形成堆棧溢出錯誤。php

所以, 須要用下面兩種方法解決:
a、更改 onerror 代碼爲其它處理方式或者確保 onerror 中的默認圖片足夠小,而且存在。
b、控制onerror事件 只觸發一次,須要增長這句話:this.onerror=null; 增長後以下:
<img src="圖片的url地址" alt="圖片XX" onerror="this.src='默認圖片的url地址;this.onerror=null'"/>

下面是經過js的判斷
用javascript判斷指定圖片文件是否存在: 
如判斷<img src="http://www.jb51.net/logos.gif">這個圖片地址是否存在. 
若是不存在,隔幾秒從新探測此圖片,若是地址有效則,提示地址有效 java

<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 this

<img src="http://www.jb51.net/logos2.gif" onerror="alert('該圖片不存在!');"> 

由於圖片不存在則返回該圖片不存在!url

引自:http://www.jb51.net/article/8796.htmspa

相關文章
相關標籤/搜索