看看img的src是否存在

Ton*_*Nam 27 html javascript image src

当我放置一个img标签时,我动态创建了src属性.有没有办法测试src(图像所在的路径)是否实际存在于javascript中以避免获取:

在此输入图像描述

Sar*_*raz 59

你可以使用这个error活动:

var im = document.getElementById('imageID'); // or select based on classes
im.onerror = function(){
  // image not found or change src like this as default image:

   im.src = 'new path';
};
Run Code Online (Sandbox Code Playgroud)

内联版本:

<img src="whatever" onError="this.src = 'new default path'" />
Run Code Online (Sandbox Code Playgroud)

要么

<img src="whatever" onError="doSomething();" />
Run Code Online (Sandbox Code Playgroud)

<img> tag支持以下事件:

  • abort (onAbort)
  • error (onerror的)
  • load (负载)

更多信息:

  • 当new_default_path不存在时会发生什么?它会是一个无限循环吗? (7认同)
  • 我更喜欢以其他方式执行此操作,以便 UI 不会等到`onError` 隐藏图像,从而导致损坏的 img 图标闪烁。`&lt;img src="somephoto.png" style="visibility:hidden;" onload="this.style.visibility='visible'" /&gt;` (2认同)

fca*_*ran 11

您可以进行先前的ajax调用(使用head方法)并查看服务器返回代码,或者您可以使用onerrorevent来更改url或使其隐藏,例如

<img src="notexist.jpg" onerror="this.style.visibility = 'hidden'">
Run Code Online (Sandbox Code Playgroud)

(我使用了内联属性来解释这个想法)


小智 5

如果您使用 javascript 动态创建 src,则可以使用:

var obj = new Image();
    obj.src = "http://www.javatpoint.com/images/javascript/javascript_logo.png";

if (obj.complete) {
    alert('worked');
} else {
    alert('doesnt work');
}
Run Code Online (Sandbox Code Playgroud)