2013-07-18 201 views
0

我試圖找出是否使用下面的代碼在JavaScript中存在的圖像:的Javascript檢查文件是否存在

var image_url = 'http://www.tester.co.uk/shop/images/product_thumbs/t_' + prod.images.toLowerCase() + '.jpg'; 

     $.ajax({ 
      url: image_url, 
      type:'HEAD', 
      error: 
      function(msg_no){ 
       console.log("fail."); 
       markup += "<td class='movie-image'><img src='/shop/html_templates/files/images/default-category-image.gif'/></td>"; 
      }, 
      success: 
      function(msg_yes){ 
       console.log("success."); 
       markup += "<td class='movie-image'><img src='/shop/images/product_thumbs/t_" + prod.images.toLowerCase() + ".jpg'/></td>"; 
      } 
     }); 

在404頁我的控制檯日誌顯示失敗的消息,但是在返回頁面200我沒有收到成功的消息。

我希望有人能告訴我我要去哪裏錯了!

感謝

+0

當然,如果該文件不存在,服務器返回'200',它是做錯了 –

+0

喜服務器,沒有圖像不跨域。 – hlh3406

+0

嗨,這是一個搜索工具,所以它一次返回多個請求,然後顯示一個404不存在的圖像,並且不能顯示 - 並且在控制檯中它顯示我上面提供的信息 - 「失敗」 - 但如果圖像確實存在,它會顯示一個200,但不會進入我的成功功能並顯示console.log(成功) – hlh3406

回答

3

通過看你實際上是在做什麼,你不這樣做的ajax,而是依靠圖片,如果返回的數據是會拋出錯誤它可能是明智的不是(通過瀏覽器)圖像。

var img = new Image(); 
img.onerror = function (msg_no) { 
    console.log("fail."); 
    markup += "<td class='movie-image'><img src='/shop/html_templates/files/images/default-category-image.gif'/></td>"; 
} 
img.onload = function (msg_yes) { 
    console.log("success."); 
    markup += "<td class='movie-image'><img src='/shop/images/product_thumbs/t_" + prod.images.toLowerCase() + ".jpg'/></td>"; 
} 
img.src = image_url; // fetch after listeners attached 
+0

好的 - 我會放棄這個 - 謝謝你! – hlh3406