图片加载完成执行动作的问题
sdts 2006-07-11 04:02:03 <img src="a.jpg" width=120 height=120 onreadystatechange=go(this)>
<img src="b.jpg" width=120 height=120 onreadystatechange=go(this)>
<img src="c.jpg" width=120 height=120 onreadystatechange=go(this)>
<img src="d.jpg" width=120 height=120 onreadystatechange=go(this)>
<script language="javascript" type="text/javascript">
//客户端调整图片按原比例输出
var PicWidthStr = 120;
var PicHeightStr = 120;
function go(obj){
//if(obj.readyState == "complete")
//{//图片加载完毕的标志
//alert(obj.readyState);
var iobj = new Image();
iobj.src = obj.src;
//alert(iobj.width);
var width = iobj.width;
var height = iobj.height;
var hpw = height/width;
if(hpw>1)
{
if(height>PicHeightStr)
{
height = PicHeightStr;
width = Math.floor(height/hpw);
}
}
else
{
if(width>PicWidthStr)
{
width = PicWidthStr;
height = Math.floor(width*hpw);
}
}
obj.width=width;
obj.height=height;
//}
}
function gout()
{
alert("图片加载未完成!");
}
function imgstate()
{
alert(document.images);
for(i=0;i<document.images.length;i++)
{
alert(document.images[i].readyState);
}
}
imgstate();
</script>
目的是先让所有的图片都以120X120显示,然后在120X120的范围内按图片的原比例显示,这个过程在客户端用JS完成,go()就是调整函数。
问题是当页面图片较多时【我测试的时候是16幅】,就会出现部分图片没有调整的情况。
我用的是onreadystatechange()触发事件,也用onload()测试过,都有同样的问题,但是用imgstate()检测一下所有图片的状态,都是“complete”,为什么还会有没有调整的情况?
谢谢了!