如何检查已加载的图像是否已加载JavaScript?

问题描述:

我不是指任:如何检查已加载的图像是否已加载JavaScript?

var img = document.getElementById('someimage'); 
img.onload = function() {.....}; 

或:

$("#someimage").load(function(){...}); 

请纠正我,如果我错了但笔者认为,上述两个选项只有工作,如果图像有尚未加载到任何这些函数被调用时。

如果#someimage在调用上述函数之一时已经加载,则该函数将无法执行。

我可以创建,保持检查图像的高度和宽度,只要其中没有一个是等于零,则考虑图像为已加载的时间间隔:

var checkImg = setInterval (function ($img, cb) 
{ 
    if (($img.height() > 0) && ($img.width() > 0)) 
    { 
     clearInterval(checkImg); 
     cb(); 
    } 
}, 200); 

我已经试过这并且在图像的高度和宽度达到它们的最大值之前显然评估了它并不起作用。

我可以检查图像的高度和宽度是否正确,但我可能不知道图像的高度和宽度。我也想避免使用magic numbers

有什么建议吗?

谢谢!

我认为你正在寻找在这里提供的解决方案:

How to tell if an image is loaded or cached in JQuery?

基本上,检查图像对象的“.complete”属性。