在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);
}
};