【发布时间】:2012-04-04 23:05:14
【问题描述】:
我有一个非常简单的代码,令人讨厌的是它正在工作,而对于我来说,我不明白为什么它现在失败了:
function imageSize(img){
var theImage = new Image();
theImage.src = img.attr('src');
var imgwidth = theImage.width;
var imgheight = theImage.height;
alert(imgwidth+'-'+imgheight);
}
传递的“img”变量是img对象,获取自:
jQuery('img')
.each(function(){
var imgsrc = jQuery(this);
imageSize(imgsrc);
});
【问题讨论】:
-
嗯,究竟是什么问题?在我看来没问题。另外,你为什么使用成熟的词'jQuery'?兼容性问题?为什么不直接使用'$'?
-
可能值得一提的是,如果在此代码运行时图像没有完全下载,那么宽度和高度将返回为零,或者可能是其他一些不正确的值。
-
准确检测图像何时完全加载非常棘手,因为如果从缓存中提取图像,
.load事件将不会触发。有关此问题的解决方案,请参阅 this question。