标签中的 onload 事件在 Firefox 中过早触发,而不是其他浏览器

2024-03-22

The onload内联 HTML 中的事件在 Firefox 和所有基于其 Mozilla 代码库(Tor 等)的浏览器中过早触发,例如:

<img onload="myFunction()" src="image.jpg" />

这调用myFunction()图像在 Chrome、Opera、IE 和 Safari 上完全加载后(但不确定新的 Edge 浏览器),这是预期且记录的行为。

然而,在 Firefox 及其相关产品上,该函数被称为立即地当浏览器读取到<img>标签,即在图像加载完成之前。这不是记录的行为,并且会导致应用程序问题。

几年前,这一点得到了证实并详细讨论过:

https://bugzilla.mozilla.org/show_bug.cgi?id=626613 https://bugzilla.mozilla.org/show_bug.cgi?id=626613

不过,我找不到任何可以解决问题的方法,我想知道是否还有其他人遇到过这个问题并找到了解决方案。


我想这可以通过与此处类似的操作来解决image.onload 事件和浏览器缓存 https://stackoverflow.com/questions/12354865/image-onload-event-and-browser-cache

这可能是您正在寻找的解决方案

var img = new Image();
$(img).on('load', function() {
  alert("image is loaded");
});
img.src = "http://url.image.jpg";

$(img).appendTo('body');

http://jsfiddle.net/ult_combo/GKFxP/5/ http://jsfiddle.net/ult_combo/GKFxP/5/

我猜你的问题是与 img 标签关联的 onload 是 window onload 方法https://developer.mozilla.org/es/docs/Web/API/GlobalEventHandlers/onload https://developer.mozilla.org/es/docs/Web/API/GlobalEventHandlers/onload

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

标签中的 onload 事件在 Firefox 中过早触发,而不是其他浏览器 的相关文章

随机推荐