如果文件存在,则更改图像源

我有http://jsfiddle.net/rcebw/3/

关键是我会有很多这些内inlinediv div。 每个内部都有2个div,一个用于保存图像,另一个用于保存链接。 这些是从另一个站点上的子站点列表动态生成的。

我想要它做的是检查每个div与类inlinediv 。 获取div iconLinkText链接的内部文本,并在iconLinkText搜索具有该名称的文件。 ( http://www.mojopin.co.uk/images/用于此测试。)如果存在,则将图像src更改为它。

我可能采取了绝对错误的路线,但我似乎无法让它工作。 测试时甚至找不到inlinediv div! 说它是空的。

我对jQuery很新,但有人有任何建议吗? (我甚至不知道我是否已经解释得很好!)

您不必使用AJAX来执行此操作,因为您可以不受任何限制地热链接来自其他域的图像。 以下是检查图像是否存在的方法:

 function checkImage(src) { var img = new Image(); img.onload = function() { // code to set the src on success }; img.onerror = function() { // doesn't exist or error loading }; img.src = src; // fires off loading of image } 

这是一个有效的实现http://jsfiddle.net/jeeah/

同源策略阻止您向其他域发出AJAX请求。 除非您在“http://www.mojopin.co.uk”上运行此代码,否则此代码将无效。

您只能使用jQuery解决此问题: 同源策略不允许您向第三个网站发出请求。

最简单的解决方案是在服务器上实现代理对外部网站的请求的服务。

基本上,如果您的网站开启

http://www.foo.bar

然后你创造

http://www.foo.bar/scheckscript.php (例如)

你可以用你需要的url查询

http://www.foo.bar/scheckscript.php?url=http%3A//www.third.com