【问题标题】:HTTP 204 (no content) when triggering onLoad and onError for an Image?触发图像的 onLoad 和 onError 时出现 HTTP 204(无内容)?
【发布时间】:2022-03-18 04:11:17
【问题描述】:

在为 img src 请求获取 HTTP“204 No Content”时,每个浏览器的行为是否一致?

<img src="/gives_me_a_204.gif" onError="alert('err')" onLoad="alert('ok')" />

在 firefox 和 opera 上我得到一个“错误”,想知道是否所有其他浏览器也会给我。

【问题讨论】:

  • 我不知道,但我不会指望它。再一次,IIRC Google 将其用于跟踪像素。也许扩展您的真实世界用例?
  • 确实,我没记错。相关:Google.com and clients1.google.com/generate_204
  • @Pekka 我查看了gmaps代码,那里使用的图像仅生成域的DNS缓存,因此他们发送ajax时没有延迟。我不认为他们将图像的 onload/onerror 用于信标本身。
  • 啊,好吧。我认为你应该添加更多关于你在做什么以及你期望什么行为的细节。我不确定在提供 204 时 onError 将如何发挥作用?无论哪种方式,这听起来都是一种极端情况,您可能无法在浏览器中依赖相同的行为。但也许有人可以为你想做的任何事情提出一个解决方法。

标签: javascript http cross-browser


【解决方案1】:

是的,这是 HTML 规范所要求的。

https://html.spec.whatwg.org/multipage/images.html#updating-the-image-data

否则

图像数据不是支持的文件格式;用户代理必须将图像请求的状态设置为损坏,中止图像请求 当前请求和待处理请求,升级待处理 如果图像请求是未决的,则请求当前请求 请求,然后在 DOM 操作任务上排队一个元素任务 源给定 img 元素以完成错误的图像加载。

【讨论】:

    猜你喜欢
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2021-12-24
    • 1970-01-01
    • 2021-10-14
    • 2011-04-25
    • 2021-12-29
    相关资源
    最近更新 更多