Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果文件存在,请更改图像源_Javascript_Jquery - Fatal编程技术网

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

Javascript 如果文件存在,请更改图像源,javascript,jquery,Javascript,Jquery,我有 这一点是我将有许多这样的inlinedivdiv。每一个都有2个div,一个保存图像,一个保存链接。这些是从另一个站点上的子站点列表动态生成的 我想让它做的是用类inlinediv检查每个div。在diviconLinkText中获取链接的内部文本,并在站点中搜索具有该名称的文件。(用于此测试。)如果它存在,则将图像src更改为它 我可能是走了一条完全错误的路,但我似乎无法让它发挥作用。测试时,它甚至找不到inlinedivdiv!说它是空的 我对jQuery很陌生,但有人有什么建议吗?(

我有

这一点是我将有许多这样的
inlinediv
div。每一个都有2个div,一个保存图像,一个保存链接。这些是从另一个站点上的子站点列表动态生成的

我想让它做的是用类
inlinediv
检查每个div。在div
iconLinkText
中获取链接的内部文本,并在站点中搜索具有该名称的文件。(用于此测试。)如果它存在,则将图像src更改为它

我可能是走了一条完全错误的路,但我似乎无法让它发挥作用。测试时,它甚至找不到
inlinediv
div!说它是空的


我对jQuery很陌生,但有人有什么建议吗?(我甚至不知道自己是否解释得很好!)

同源策略阻止您向其他域发出AJAX请求。除非你是在运行这个“http://www.mojopin.co.uk“,此代码将不起作用。

仅使用jQuery无法解决此问题:不允许您向第三个网站发出请求

最简单的解决方案是在服务器上实现一个服务,将请求代理到外部网站

基本上,如果你的网站是开放的

然后你创造

(例如)

您可以使用所需的url进行查询


您不必使用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
}

这是一个有效的实现

这是一种基于承诺的现代方法,它将返回一个带有布尔值的承诺

函数imageExists(src){
返回新承诺((解决、拒绝)=>{
var img=新图像();
img.onload=函数(){
决心(正确);
}
img.onerror=功能(错误){
决议(假);
}
img.src=src;
})
}
常量imagePath=”http://www.google.com/images/logo_sm.gif";
imageExists(imagePath)。然后(doesExist=>{
log('doesImageExist',doesExist);
});

啊,对了,那么检查文件是否存在的最佳方法是什么?此外,它还没有忘记这样一个事实:它似乎无法在inlinediv中找到
!插入一个IMG标签并连接一个onload事件。然后将图像的SRC设置为您正在测试的图像。如果它在几秒钟内没有出现,它可能不存在。我不明白,我想如果图像不存在,使用默认图像,但如果它确实存在,则使用默认图像。我已经让它的其余部分工作了,只需要检查一下是否存在。你眼前的问题是你在小提琴上使用Mootools。您需要从框架下拉列表中选择要使用的jQuery版本。>:(不知道为什么会更改。干杯。我现在有更多的工作要做!非常方便!Tho向控制台抛出“未找到资源”错误。各种其他“重复”类似问题的答案对我来说并不如这一个好。一些AJAX驱动的方法导致了Firefox中的NS_错误_失败,这一个没有。谢谢!