2

为了确保在做任何事情之前准备好文档,我执行以下操作:

(function() {
    var interval = window.setInterval(function() {
        if("complete" === document.readyState) {
            window.clearInterval(interval);
            // Some stuff
        }
    }, 10);
})();

如果在我的代码中的某个地方,我从 JavaScript 创建一个图像,如下所示:

var image = new Image();
image.onload = function() {
   // Some other stuff
};
image.src = 'some_url';

我在 document.readyState 上执行的检查是否也会等待加载“图像”,还是只等待 HTML 代码中存在的图像,并且只有那些图像被加载?

提前致谢。

4

2 回答 2

2

你不需要你的setInterval.

来自 MDN

load 事件在文档加载过程结束时触发。至此,文档中的所有对象都在 DOM 中,所有图片和子帧都加载完毕。

您可以简单地对静态包含的图像执行此操作:

window.onload = function() {
    // Some stuff
};

由于这不考虑您稍后创建的图像,您可以这样做:

window.onload = function() {
    var image = new Image();
    image.onload = function(){
        // Some stuff
    };
    image.src = 'some_url';
};
于 2012-09-26T08:51:31.213 回答
0

在 jquery document.ready() 函数中,当整个 html 页面准备好时调用,或者我们可以说 bind(在技术术语中)。

您应该尝试增加间隔时间。或包括执行这些东西的图像加载回调。

于 2012-09-26T08:58:15.937 回答