Javascript 检查是否使用defect.js加载了所有图像
使用 我懒得在一个页面上加载6个图像,我想打印此页面上的图像,但我需要首先强制加载所有图像:这是通过以下方式完成的:Javascript 检查是否使用defect.js加载了所有图像,javascript,jquery,lazy-loading,Javascript,Jquery,Lazy Loading,使用 我懒得在一个页面上加载6个图像,我想打印此页面上的图像,但我需要首先强制加载所有图像:这是通过以下方式完成的: $(“img”).trigger(“揭幕”)您可以通过一些jQuery和load事件来实现这一点: jQuery( document ).ready(function($) { var imageContainer = $('#imagecontainer'); var numImages = $('img', imageContainer).length; va
$(“img”).trigger(“揭幕”)代码>您可以通过一些jQuery和load
事件来实现这一点:
jQuery( document ).ready(function($) {
var imageContainer = $('#imagecontainer');
var numImages = $('img', imageContainer).length;
var numImagesLoaded = 0;
$('img', imageContainer).on('load', function() {
numImagesLoaded++;
if (numImagesLoaded == numImages) {
runAfterAllImagesLoaded();
}
});
function runAfterAllImagesLoaded()
{
alert('hello');
}
});
下面是一个示例,用于以随机速度加载图像,然后在加载后显示警报:
jQuery(文档).ready(函数($){
var imageContainer=$(“#imageContainer”);
var numImages=$('img',imageContainer).length;
var numImagesLoaded=0;
$('img',imageContainer).each(函数(){
var showtimetime=Math.floor(Math.random()*(5000-1000+1)+1000);
$(this.attr('src','http://deelay.me/“+showtimetime+”/https://placekitten.com/400/200')
});
$('img',imageContainer).on('load',function()){
numImagesLoaded++;
if(numImagesLoaded==numImages){
runAfterAllImagesLoaded();
}
});
函数runAfterAllImagesLoaded()
{
警惕(“你好”);
}
});代码>
$(“img”)。触发(“揭幕”)“代码>将导致加载所有图像,因此,在此之后立即打印您的对话框将在触发它们后输出对话框。是的,但在所有图像都有时间加载之前,对话框就会显示出来。如果您想等到一组特定的图像完成加载,您可能需要这样的操作。实际上,我想我找到了答案:在加载函数中包装最后一个图像似乎可以做到这一点。你可能会遇到的问题是,如果他们的最后一个图像(无论出于何种原因)加载速度比其他图像快,你仍然可以在所有图像加载之前获得对话框。谢谢,但它似乎不起作用,甚至你的小提琴也不起作用,它只加载两张图片,永远不会到达runAllImagesLoaded函数。实际上,在safari中,它不起作用,在chrome中起作用。是的,它起作用了,出于某种原因,它没有得到正确的numImages变量。非常感谢。