【问题标题】:Firefox "onerror" would not fire even when image is not valid即使图像无效,Firefox“onerror”也不会触发
【发布时间】:2011-04-25 16:49:21
【问题描述】:

我在图像标签上有一个 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)找不到远程图像(未触发onerror),3)未找到远程图像(触发onerror)

【问题讨论】:

    标签: javascript firefox mime-types


    【解决方案1】:

    这不是断开的链接。

    twimg.com 实际上会返回一个带有您请求的 url 名称的图像。

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

    更新

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

    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 中定义一个函数来处理这种情况。

    【讨论】:

    • 对我来说已经坏了。我们在看同一件事吗? a3.twimg.com/profile_images/522455109/…
    • @ming, .. 但 onload 错误对我来说适用于这个特定的图像.. jsfiddle.net/nenwQ
    • jsfiddle.net/nenwQ - 在 chrome 中工作,而不是在 Firefox 中。奇怪啊!
    • 嗨,盖比,非常感谢!这真是太聪明了!然而,当我定义它时,Chrome 会抛出一个错误:“Uncaught SyntaxError: Unexpected token ILLEGAL”。知道有什么问题吗?
    • @ming 当我在onerror=..onload=... 内的字符串周围不匹配' 时,我只能重现您提到的错误
    猜你喜欢
    • 2014-02-19
    • 1970-01-01
    • 2016-06-04
    • 2012-12-19
    • 2021-07-21
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    相关资源
    最近更新 更多