即使图像无效,Firefox“onerror”也不会触发

时间:2010-10-14 23:32:05

标签: javascript firefox mime-types

我在image标签上有一个onerror处理程序,用于在找不到远程图像时处理切换。

问题是对于某些破碎的远程图像,它不起作用。

http://a3.twimg.com/profile_images/522455109/calvin-and-hobbessm_normal.jpg

<img onerror="this.src='/images/pic_not_found.png'" src="http://a3.twimg.com/profile_images/522455109/calvin-and-hobbessm_normal.jpg">

下图: 1)找到远程图像时,2)未找到远程图像(未触发错误),3)未找到远程图像(触发错误)

alt text

1 个答案:

答案 0 :(得分:5)

这不是一个破碎的链接。

twimg.com实际上会返回一张包含您请求的网址名称的图片。

只需点击图片链接即可。你看到的不是文字,而是图像。

<强>更新

以下是一些适用于所有浏览器的代码 它做了一些基本的特征检测。

function handle( elem, img, state )
{
  if ((typeof(elem.onerror) === 'function' && state === 'fail') 
      || (elem.width === 0)
    )
     {
       elem.src = img;
     }
}

http://jsfiddle.net/VVcQj/1

它同时使用onloadonerror,但需要在javascript中定义的函数来处理这种情况。