0

我尝试在我的 HTML 中放置多个图像,并在它们全部加载时对其进行操作。

但有时在 IE9 中不会触发 onload 事件。

我设置了一些控制台调试消息,发现如果注册onload事件时图像的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;
    }
});

PS 我不想使用 window.onload 方法,因为我的脚本可能是一个插件,它会插入某人的页面。

4

1 回答 1

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'));
});
于 2013-09-02T02:58:03.867 回答