<img src="http://photocdn.sohu.com/20110928/Img320770627.jpg" border="0" onload="javascript:alert(this.width);" />这个代码,是出现在我的某个框架页面中的某个区域的,刷新,有的时候可以弹出图片的宽度,有的时候弹出0,也就是无法获取图片的宽度。
如果 我在页面中做个按钮,点击按钮时弹出图片宽度,那么100%可以弹出。结果研究,发现,可能是图片加载的问题。onload。如果页面加载完后再测试,则可以发现图片的尺寸是绝对可以获取到的。但是,如果还在页面加载的时候就用onload,那么 有可能图片是从缓存中读取的,会读不到。会提示0.  我这样做了一次测试,我在alert(this.width);这句话之前加了一句alert("消息"); 随便弹出什么都可以。那么后面的代码就能正确执行了。这,有个弹出窗口,似乎是给后面的代码alert(this.width); 腾出了反应时间。 因为要用户去点了那个弹出窗口,然后再继续执行后面的代码。延伸到更深层次的问题是:
很多时候需要对图片进行缩放,而有可能缩放的js代码是放在外部js文件的。
但前页面中的图片缩放调用代码是:<img src="http://photocdn.sohu.com/20110928/Img320770627.jpg" border="0"    onload="javascript:DrawImage(this,400,300);"  />往往是,第一次访问这个页面,DrawImage可以正常执行,如果是第二次第三次访问,那么页面会从缓存中读取图片,似乎是这样 而使得js无法获得图片宽度高度。
但是,不管什么情况下,如果在前面加一句弹出窗口,起到延时作用的,那么后面跟着的代码就可以执行起来。比如:
onload="javascript:alert("延时一下");DrawImage(this,400,300);" 
大家有没有同样的感受?  要怎么解决?