JS调用image.width有时为空的解决方法

来源:互联网 发布:ieee33节点数据 编辑:程序博客网 时间:2024/06/15 11:46

在JS中调用image的高宽,通常写法为:

var img = new Image();img.src = url;alert(img.width);


但是有时img.width出现为0(IE6下情况经常发生)

在网上查了些资料后确认这是图片没有完全加载但是又调用了img.width的缘故,解决方法是等图片完全加载后再调用img的高宽

上代码:

/** * 判断图片是否加载完整 * @author xulexun 2015-01-07 下午 17:06:20  */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;};/** * 根据屏幕分辨率动态调整图片的大小  * @author xulexun 2015-01-07 下午 17:23:20 */function icall(image) {
     //在这里写图片加载完后的处理,比如使用图片的高宽,打开对话框等等}

 

JS调用方法:

var image = new SImage(icall);image.get(picPath);    //picPath为图片的url



 

0 0
原创粉丝点击