Pregunta

Consider the following image appended to the document :

<img id="someimage" src="http://www.someimage.jpg">

None of the following will work if the image has already been loaded by the time these functions are called :

document.getElementById('someimage').onload = function ()
{
  console.log('image just loaded');
};

nor

$("#someimage").load(function ()
{
  console.log('image just loaded');
});

Is there a way around that ? i.e. a function that will not wait for the image to load but will check whether the image has already been loaded earlier?

Thanks

¿Fue útil?

Solución

Check the complete property of DOM node:

document.getElementById('someimage').complete;

BTW, this is how you should handle it:

$("#someimage").one('load', function ()
{
  console.log('image just loaded');
}).each(function(){
    if(this.complete) $(this).trigger('load');
});

Otros consejos

YOu can use the src property for this.

var image = document.getElementById('someimage');
if(image != null){
    if(image.src  == "http://www.someimage.jpg"){
       console.log("your image is loaded");
   }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top