Checking whether images loaded after page load
- by johkar
Determining whether an image has loaded reliably seems to be one of the great JavaScript mysteries.  I have tried various scripts/script libraries which check the onload and onerror events but I have had mixed and unreliable results.
Can I reliably just check the complete property (IE 6-8 and Firefox) as I have done in the script below?  I simply have a page wich lists out servers and I link to an on.gif on each server.  If it doesn't load I just want to load an off.gif instead.  This is just for internal use...I just need it to be reliable in showing the status!!!
<script type="text/javascript">
var allimgs = document.getElementsByTagName('img');  
 function checkImages(){   
     for (i = 0; i < allimgs.length; i++){  
         var result = Math.random();  
        allimgs[i].src = allimgs[i].src + '?' + result;  
     }  
     serverDown();  
     setInterval('serverDown()',5000);  
}  
window.onload=checkImages;  
function serverDown(){  
     for (i = 0; i < allimgs.length; i++){  
        var imgholder=new Image();  
        imgholder.src=allimgs[i].src;   
        if(!allimgs[i].complete){  
            allimgs[i].src='off.gif';  
        }  
     }  
}  
</script>