2012-07-23 108 views
0

任何人都可以看到有什么不对吗?当图像不在我想要的位置时,它会停止图像的变化,但它不会一直改变图像!如果文件存在Javascript

干杯, 肖恩

var myFile = "/_images/multi/" + productCode + "/" + imgCodeAlt + "_l.jpg"; 
if (myFile.exists()) { 
    $("#imgMain img").attr({ 
     rel: 'lightbox', 
     src: "/_images/multi/" + productCode + "/" + imgCodeAlt + "_l.jpg" 
    }); 
} 
+0

哪里是'存在()'定义? – Matt 2012-07-23 10:57:47

+1

我在这里读过这是一个函数? – 2012-07-23 10:58:44

+0

JS中不存在(),因为它是客户端.. – 2012-07-23 10:59:00

回答

1

如果定义exists这样你的代码将工作:

String.prototype.exists = function() { 
    var a = new XMLHttpRequest; 
    a.open("GET", this+"", false); 
    a.send(null); 
    return a.status === 200; 
}; 

"/".exists() //true 
+0

现货,感谢:-) – 2012-07-23 12:23:22

1

不能检查现有的Javascript,由于它是一个客户端的语言文件。

您可以尝试对该文件发出ajax请求,并且如果它返回404状态代码,该文件不存在 - 虽然看起来很乱。

+1

JavaScript不是客户端语言。尽管如此,在这种情况下OP是*使用*它是客户端。 – 2012-07-23 10:58:21

+4

你也可以创建一个'new Image()',设置'src',并监听'onerror'事件。 – Matt 2012-07-23 10:58:41

+1

你开始说它不能做,然后你说怎么做... – Dennis 2012-07-23 10:59:36

0

什么是exists()?如果你试图从JavaScript中检查文件是否存在,那么这在JS中不能使用该方法。

如果您需要验证文件的存在,我会建议使用AJAX调用。