用JS 判断图片已经加载完成(兼容IE 和 Firefox)

js 判断图片已经加载完成 是一个很常见的问题,网上也有很多的解决方案。但是运行后很多都不兼容,或者
说,存在一些奇怪的问题。一种解决方案是都用onload。因为onload 在ie 下有同步方面的问题。
所以,我用了 onreadystatechange 。 代码和 使用方法如下:
<script>
function SImage(callback)
{
    
var img = new Image();
    
this.img = img;
    
var appname = navigator.appName.toLowerCase();
    
if (appname.indexOf("netscape"== -1)
    {
       //ie
        img.onreadystatechange 
= function () {
            
if (img.readyState == "complete")
            {
                callback(img);
            }
        };
    } 
else {
       //firefox
        img.onload 
= function () {
            
if (img.complete == true)
            {
                callback(img);
            }
        }
    }
}

SImage.prototype.get 
= function (url)
{
    
this.img.src = url;
}

var img = new SImage(icall);
img.get(
"http://space.cnblogs.com/images/logo.gif");

function icall(obj)
{
    alert(obj.width);
}
</script>

这段代码可以实现 获取一个远程图片的宽度。
posted @ 2009-08-27 18:51  暮夏  阅读(8729)  评论(0编辑  收藏  举报