我尝试在我的HTML中放置多个图像,并在它们全部加载时对它们进行操作。
但有时在IE9中没有触发onload事件。
我设置了一些控制台调试消息,发现如果我在注册onload事件时加载了image的readyState,onload事件就不会触发。
代码段如下:
var loaded = function () {
// increate counter to make sure all images are loaded or not
};
var thumbnails = $('img');
thumbnails.each(function () {
console.log('this.readyState:'+this.readyState)
if (this.complete) {
loaded();
} else {
this.onload = loaded;
}
});
P.S。我不想使用window.onload方法,因为我的脚本可能是一个插件,它会插入某人的页面。
答案 0 :(得分:1)
尝试重新分配图像源(src)以触发事件,例如:
var thumbnails = $('img');
thumbnails.each(function () {
var img = $(this);
console.log('this.readyState:'+this.readyState)
if (this.complete) {
loaded();
} else {
this.onload = loaded;
}
img.attr('src', img.attr('src'));
});