检查图片是否存在而没有出现404错误(adWords失败)

时间:2018-07-09 07:16:26

标签: javascript jquery google-adwords

我有一个网站,您可以在其中搜索产品。 所有产品图片的名称都类似于{{1} 某些产品图片丢失,如果显示img/product/{id}.jpg.,则应改为显示。

我找到了以下代码来实现此目的:

image_missing.jpg

这很好。如果图像不存在,则将其替换为function UrlExists(url) { var http = new XMLHttpRequest(); http.open('HEAD', url, false); http.send(); return http.status!=404; } /* check if image exists */ if(UrlExists(imageURL) == true){ /* image exists, do nothing */ } else{ imageURL = 'img/product/image_missing.jpg'; }

问题是我仍然可以

  

(!)无法加载资源:服务器以状态404响应   (未找到)

加载页面时,在控制台中输入

即使网站上没有损坏的图像,Google AdWords也会看到所有这404个图标(目前为7个),并且不允许我将该页面作为广告系列的目标网页。

是否可以在不获取404的情况下检查图像是否存在?我非常感谢能在这里得到的任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以在不发出HTTP请求的情况下尝试以下操作,仅检查图像是否存在:

function UrlExists(imageUrl) {
  return new Promise((resolve, reject) => {
    let imageData = new Image();

    imageData.onload = () => {
      resolve();
    }

    imageData.onerror = () => {
      reject()
    }

    imageData.src = imageUrl;
  })
}

使用上述功能如下:

UrlExists(imageURL)
  .then(function(result){
    // resolve here
    // image exists, do nothing
  }, function(error) {
    // reject here
    imageURL = 'img/product/image_missing.jpg';
  });