今天在IE下想在onload事件获取img的宽高,但一直取不到值,就在网上搜索了一下,原来又是和顺序有关,XXX。我们先来看下面这个例子:
var img = new Image(); img.src = "test.gif"; img.onload = function(){ alert ( img.width ); };
单纯这样看,并没不会觉得有什么问题。但在IE中存在BUG,第一次打开页面时还正常,之后就没反应了,怎么刷新也无效,这是因为图片已经被缓存在本地了。
var img = new Image(); img.onload = function(){ alert ( img.width ); }; img.src = "test.gif";
我们现在改成上面这样,问题就解决了。我们还可以通过img.complete先来判断是否已缓存在本地,如果是那就不用用onload去获取了
要注意的是在IE6下,GIF含有多帧的图片会多次加载,所以在onload事件里,记得要把img.onload设置为null