验证href指向文件的链接

问题描述:

我正在使用JQuery为图像文件动态添加链接。验证href指向文件的链接

+ "<td><a class='IconButton' id='trkimg" + k + "' href='IMSTORE\/" + trackings[k].Image + "'><span class='ui-icon ui-icon-image'></span></td>" 

此代码将检查这个值是从数据库返回并隐藏,如果没有返回任何内容的链接:

if (trackings[k].Image == null) { $("#trkimg" + k).html(""); $("#trkimg" + k).removeClass('CustomButton'); } 

如何使用jQuery来验证文件返回的实际存在,如果它不存在,显示不同的图像?

根据SeanJA的建议,您可以使用ajax'测试'图像,然后实际追加success回调中的图像,或尝试error回调中的另一个图像。

您正在请求图像两次,但可能会在第一次尝试后缓存。不确定。

如果你想实际使用返回的图像,它需要进行编码。这里有一个链接指导如何做到这一点。虽然没有尝试过。

http://emilsblog.lerch.org/2009/07/javascript-hacks-using-xhr-to-load.html

var imageURI = "http://mydomain.com/myimage.jpg"; 
    $.ajax(
     { 
      type:'get', 
      dataType:'image/jpeg', 
      url:imageURI, 
      success:function() { $('body').append('<img src="' + imageURI + '" />'); }, 
      error:function() { /* Change url in imageURI variable, and try again */ } 
     } 
    ); 

不知道这是最好的方式,但似乎工作。

Javascript无法看到您的服务器上的文件。你可以做一个ajax请求到服务器端来检查文件是否存在,我猜。

+0

是否有可能捕获404错误并重定向到不同的图像? – wham12 2010-04-22 17:17:25