【问题标题】:onerror no longer firing when src is video in html img tag当 src 是 html img 标签中的视频时,onerror 不再触发
【发布时间】:2019-05-02 02:09:19
【问题描述】:

多年来我一直在我的网页上使用以下代码,但它最近在 Firefox 中停止工作(尚未检查其他浏览器):

<img src="video.MP4" onerror="this.src='vid.png';"/>

只要 src 是视频而不是图像,就会触发 onerror,显示标准化的视频图像代替视频。大多数项目都是图像并且仍然正确加载,我只是希望视频显示图像。

现在,浏览器挂起,加载图标在旋转。网络选项卡显示加载完成,但此元素根本不加载,无论是占位符还是视频。可能它仍在尝试下载视频并且网络选项卡不正确。

有没有办法将所有非图像(尤其是视频)文件回退到默认图像?谢谢。

【问题讨论】:

  • 您不应该使用img 元素来加载视频...这就是video tag 的用途...here is a little tutorial
  • 但是视频标签也加载图像吗?我无法让它发挥作用。如果内容是图像,我需要一些可以加载图像的东西,如果是视频,我需要加载后备图像。
  • 不,我不相信它。 video 标签用于视频,而img 标签用于图像。你不应该做你在做的事。尽管您的代码实际上可以在 chrome 中运行,但这是非常糟糕的做法。这不是这些语言的用途,这可能是它不再在 Firefox 中工作的原因。如果有一天它停止在 chrome 上工作,我不会感到惊讶。你为什么不发布一个问题来解释你想做什么,为什么要这样做,以及你已经尝试过的方式?
  • 您可以使用video元素的poster属性来显示图像,直到视频的第一帧可用为止
  • 请见上文。

标签: html


【解决方案1】:

我很确定下面的代码会做你想做的事,虽然我不确定哪些浏览器不支持video标签,所以我没有测试过。

如果浏览器不支持video 标签,则img 元素应作为备用元素显示。需要注意的是,我不完全确定 img 元素是否可以用作备用元素,尽管我不确定为什么不能。

<video poster='image.jpg'>
  <source src='video.mp4' type='video/mp4'>
  <img src='image.jpg' />
</video>

【讨论】:

  • 这适用于 IE。它可以在 Firefox 中运行,但我相信它仍在尝试在后台加载视频,因为它仍在旋转和挂起。但是,它不会以 chrome 显示后备图像,只是一个空白区域。我想我会坚持使用我的原始代码,因为它适用于 2/3,而且你说它甚至在 FF 中也适用于你。谢谢。
  • @Sharky 它应该可以工作。您是否将image.jpg 值更改为计算机或其他地方的实际图像路径?这是one SO 帖子确认我的答案,另一个one. 这应该在支持和不支持video 的浏览器中都可以使用。您遇到的任何问题似乎都与代码无关,哈哈
猜你喜欢
  • 2013-04-01
  • 1970-01-01
  • 2021-08-11
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 2016-03-09
  • 2012-11-02
  • 2020-07-21
相关资源
最近更新 更多