<img/>标记中的onload事件在Firefox中过早触发,而不是其他浏览器

时间:2015-10-03 20:17:41

标签: javascript jquery html firefox onload

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

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

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

但是,在Firefox及其亲属上,该功能在浏览器读取<img>标签后立即称为 ,即 之前图像的加载已完成 。这不是记录的行为并导致应用程序问题。

几年前,这已得到确认和详细讨论:

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

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

1 个答案:

答案 0 :(得分:0)

我想这可以解决做类似于此处所做的事情 image.onload event and browser cache

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

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

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

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

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