Javascript 如何检测是否加载了网页的所有内容

Javascript 如何检测是否加载了网页的所有内容,javascript,html,iframe,Javascript,Html,Iframe,有没有办法检测网页上的所有资源是否都已加载?即使我能检测到所有的图像都已完全加载,这也会有很大帮助。我的情况是这样的: 我在页面中有一个iframe,在iframe内部有一个函数调用window.print(),它将打印iframe的内容。iframe的内容是在单击iframe父级中的按钮时生成的。该按钮还负责在生成内容后立即调用iframe内部的打印功能 问题是一旦单击按钮,就会生成html,然后调用window.print()显示打印预览窗口。但是这种情况发生得太快,而且图像尚未加载,因此打

有没有办法检测网页上的所有资源是否都已加载?即使我能检测到所有的图像都已完全加载,这也会有很大帮助。我的情况是这样的:

我在页面中有一个iframe,在iframe内部有一个函数调用window.print(),它将打印iframe的内容。iframe的内容是在单击iframe父级中的按钮时生成的。该按钮还负责在生成内容后立即调用iframe内部的打印功能

问题是一旦单击按钮,就会生成html,然后调用window.print()显示打印预览窗口。但是这种情况发生得太快,而且图像尚未加载,因此打印预览窗口显示空图像

我试图在调用window.print()之前检查是否加载了所有图像,但我不确定该怎么办。我尝试了一个while循环,检查完整属性,类似于:

var img = document.getElementById("myImg");
while (!img.complete) {
}

window.print();
但它最终会进入一个无限循环


你知道我有什么选择吗?

我碰巧有一个gif加载程序脚本,可以帮助你:

var gif=new Image();
gif.src=https://media.giphy.com/media/HoaHfvovCLSvu/giphy.gif';
gif.onload=函数(){
log(“图像1已准备好追加”);
document.querySelector('.bg image').src=gif.src;
};

我碰巧有一个gif加载程序脚本,可以帮助您:

var gif=new Image();
gif.src=https://media.giphy.com/media/HoaHfvovCLSvu/giphy.gif';
gif.onload=函数(){
log(“图像1已准备好追加”);
document.querySelector('.bg image').src=gif.src;
};

Jquery document ready在这种情况下应该可以工作:

$( document ).ready(function() {
console.log( "ready!" );
});

在这种情况下,Jquery document ready应该可以工作:

$( document ).ready(function() {
console.log( "ready!" );
});

这就是“加载”事件所指示的。如果要检查iframe的完整加载,则
iframe.contentWindow.onload=function(){}这就是“加载”事件所指示的。如果要检查iframe的完整加载,则
iframe.contentWindow.onload=function(){}