2015-04-02 48 views

回答

0

我已经看到了这个作为一个选项...

<img src="foo.jpg" onerror="if (this.src != 'error.jpg') this.src = 'error.jpg';"> 

这也可以触发一个函数。

您也可以尝试这样的事情...

<object data="http://stackoverflow.com/does-not-exist.png" type="image/png"> 
    <img src="http://stackoverflow.com/content/img/so/logo.png" /> 
</object> 

因为第一图像不存在,回退(堆栈溢出标志)会显示。如果您使用的是不支持对象的旧浏览器,它将忽略该标签并使用img标签。

UPDATE

使用映像路径(URL),尝试这样的事情......

http://perishablepress.com/3-ways-preload-images-css-javascript-ajax/

通过AJAX预加载可能会给出一个答案,那么你可以使用成功/错误处理。

+0

但是从URL完全不是HTML代码 – user1937021 2015-04-02 15:19:28

+0

查看更新... – rfornal 2015-04-02 15:22:33

1

使用onerror处理程序。然而,触发错误之前,必须连接,所以你要以后设置src属性:

$("img").error(function(){ 
    $(this).hide(); 
}).attr('src', 'http://www.domain.com/img/slide1.jpg'); 

https://api.jquery.com/error/

+0

从他们的文档中:在浏览器触发错误事件之前,必须附加事件处理程序,这就是为什么示例在附加处理程序后设置src属性的原因。此外,当页面在本地服务时,错误事件可能无法正确触发;错误依赖于HTTP状态代码,如果URL使用file:协议,通常不会被触发。 – rfornal 2015-04-02 15:24:09

+0

实际上,它在用于本地文件时似乎适用于Chrome。 – riv 2015-04-02 15:29:55

+0

我刚刚发布了文档以使答案完整。有些浏览器有类似的问题,有些浏览器却不这样(Chrome似乎常常做得不好)。 – rfornal 2015-04-02 15:31:19