一个小巧的图片预加载类...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<SCRIPT LANGUAGE="JavaScript">
<!--
var IE=navigator.appName=="Microsoft Internet Explorer";
var Opera=navigator.appName.toLowerCase()=="opera";
var FF=!IE && !Opera;
function LoadImage(arrSrc,callBack)
{
?this.Length=arrSrc.length;
?this.LoadedLen=0;?//已经被加载的图片个数
?var self=this;
?if(self.Length<1)
?{
??callBack(arrSrc);
??return;
?}
?
?//经测试,OPERA与别的浏览器加载方式不同,所以特别独立开来...
?if(Opera)
?{
??for(var i=0;i<self.Length;i++)
??{
???var tmpImg=new Image();
???tmpImg.src=arrSrc[i];
???tmpImg.onload=function()
???{
????self.LoadedLen++;
????if(self.LoadedLen==self.Length && callBack)?callBack(arrSrc);
???}
??}
??return;
?}
?this.Load=function()
?{
??self.LoadedLen++;
??document.getElementById("counter").innerHTML=self.LoadedLen;
??if(self.LoadedLen<self.Length)?self.DownImg();
??else if(callBack)?callBack(arrSrc);
?}
?
?this.DownImg=function()
?{
??var tmpImg=new Image();
??tmpImg.src=arrSrc[self.LoadedLen];
??if(IE)
??{
???if(tmpImg.readyState=="complete")?self.Load();
???else?tmpImg.onreadystatechange=function()
???{
????if(this.readyState=="complete")?self.Load();
???}
??}
??else?tmpImg.onload=self.Load;
?}
?this.DownImg();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<div id="counter"></div>
?<SCRIPT LANGUAGE="JavaScript">
?<!--
?var arr=['http://www.baidu.com/img/baidu_logo.gif','http://wb.caike.com/images/logo.gif','http://www.google.com.hk/intl/zh-CN/images/logo_cn.gif'];
?var t=new LoadImage(arr,function(arr)
?{
??
??var str="";
??for(var i=0;i<arr.length;i++)
??{
???str+="<img src='"+arr[i]+"' /><br>";
??}
??document.body.innerHTML+=str;
?});
?//-->
?</SCRIPT>
</BODY>
</HTML>