我应该使用啥来代替已弃用的 `onerror` 属性?
Posted
技术标签:
【中文标题】我应该使用啥来代替已弃用的 `onerror` 属性?【英文标题】:What should I use instead of the deprecated `onerror` attribute?我应该使用什么来代替已弃用的 `onerror` 属性? 【发布时间】:2020-01-18 15:42:58 【问题描述】:在我的图像上,我设置了onerror
属性,以便在图像由于某种原因不可用时使用占位符:
<img
class="article-img"
src="path-to-image.jpg"
onerror="this.src='/images/fallback.png'"
>
现在,它看起来像 onerror
has been deprecated,但我找不到任何好的资料来说明处理错误的建议替代方法(可能以类似紧凑的方式)。
知道为什么它被弃用也会很有趣。
【问题讨论】:
【参考方案1】:根据 MDN,它似乎已被弃用为 img 标签属性,而不是全局事件; GlobalEventHandlers.onerror 仍然有效,并且似乎他们还没有将标记属性事件分类为已弃用(在该部分中),他们仍然显示 img 属性示例。
参考:https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror
所以你仍然可以使用它,只是不要将它用作标签属性,你可以将它放在脚本标签或单独的文件中。
顺便说一句,我刚刚在 w3c 验证器上测试了一个带有 onerror 属性的 img 标签,它既没有将其标记为错误也没有作为警告。
【讨论】:
我在 JetBrains 软件中收到 IDE 警告,因为我将其用作属性,fwiw。 到处找,但看不到为什么 img 元素的 onerror 属性在 2017 年在 MDN 中用this commit 标记为弃用,不幸的是更改作者没有说。我已经通过了 html 规范,但我不明白这是基于什么。有什么想法吗?【参考方案2】:我认为这是一个错误。
WHATWG 在他们的HTML living standard specification 中仍然提到onerror
。
另外,img
元素上的onerror
属性不包含在它们的obsolete features list 中。
【讨论】:
很高兴知道支持 IE 的替代方案(需要支持商业...否则我知道)以上是关于我应该使用啥来代替已弃用的 `onerror` 属性?的主要内容,如果未能解决你的问题,请参考以下文章
jQuery.type() 已弃用。检查 var 是不是不是对象时,我应该使用啥来代替? [复制]
BaseJQueryEventObject、JQueryEventObject 等已弃用。我们用啥来代替它?
什么应该替换已弃用的 Facebook adView setAdListener 以获取回调?