2013-08-22 36 views
0

我已經使用here的圖像存在檢查代碼。我的代碼如下所示:圖像存在檢查不起作用

var checkImage = function(src,success) { 
    var img = new Image(); 
    img.onload = function() { 
    success(src); 
    }; 

    img.onerror = function() { 
    alert('error'); 
    }; 

    img.src = src; // fires off loading of image 
}; 

,我把它稱爲是

var src=''; 
checkImage('../images/icon64x64.png',function(source){ 
    alert('success image'+source); 
    src=source; 
}); 

但每一次它給即使在給定的路徑圖像中存在錯誤。當我使用this網址時,無論是錯誤還是成功回調呼叫。什麼做錯了?

+0

您具體是如何測試?你的小提琴對我來說是100%(在Firefox中)。 –

+0

小提琴工作,我不是說它不工作,但這個代碼是不檢查我的系統中的本地路徑的圖像。這隻檢查在任何給定的url的圖像。但不會觸發任何警報,如果給予成功或錯誤回調。 – Warewolf

+1

你說,使用谷歌的圖像可以讓你「既不會錯誤也不會成功回調」,這不是真的 - 回調被稱爲很好。 –

回答

1

試試這個

function IsValidImageUrl(url) { 
    $("<img>", { 
    src: url, 
    error: function() { alert(url + ': ' + false); }, 
    load: function() { alert(url + ': ' + true); } 
    }); 
} 

IsValidImageUrl("https://www.google.com/logos/2012/hertz-2011-hp.gif"); 
IsValidImageUrl("http://google.com"); 
+0

我沒有圖像的URL我在本地顯示圖像。 – Warewolf

+0

把簡單的IMG文件路徑 IsValidImageUrl(「1_s.jpg」) –

+0

是啊這似乎工作謝謝 – Warewolf

1

你可以使用jQuery來檢查文件是否存在

var checkImage=function(src){ 

    $.ajax({ 

     url:src, 
     type: "HEAD", 
     async: true, 
     success: function() 
     { 
     //This shows file is there 
     // If it is there load it into your variable 
     }, 
     error: function() 
     { 
     //file is not there 
     }, 
    }); 
} 
+0

在類型上顯示意外標識符:'HEAD'; – Warewolf

+0

ü可以使用誤差函數來 $( '#imageElement')錯誤(函數(){ //做你想做的 })。 – Shadow