这是一个简单的脚本:
var _URL = window.URL || window.webkitURL;
var img;
var img_width = 0;
var img_height = 0;
var f = $(this)[0].files[0];
if (f != null) {
if (f.type == 'image/jpeg') {
img = new Image();
img.onload = function () {
img_width = this.width; //why not $(this)??
img_height = this.height;
alert(img_width + ' x ' + img_height); //1st alert
};
img.src = _URL.createObjectURL(f);
alert(img_width + ' x ' + img_height); //2nd alert
};
};
img_width
& img_height
是全局变量,其值将使用img.onload
重置。执行脚本时,first alert
显示宽度和高度。但是,2nd alert
始终显示0 x 0
。为什么在img_width
内没有重置gloabl var img_height
和img.onload
以便在主线程中使用?