0

我正在使用 HTML5 文件 API 来获取图像的宽度。

它的工作,并且 console.log 正在输出正确的数量。

我需要将值保存到变量fileWidth,以便可以在函数外部访问它。我在函数外部创建了一个空变量,并希望用函数内部的值对其进行更新,但无论我尝试什么都失败了。

这是我的代码:

var fileWidth;
var reader = new FileReader;
reader.onload = function() {
    var img = new Image;
    img.onload = function() {
        fileWidth = img.width;
        console.log(fileWidth);
    };
    img.src = reader.result;
};

reader.readAsDataURL($('#submission-file')[0].files[0]);

谁能看到为什么变量没有被更新?

编辑代码:

var fileWidth;
var reader = new FileReader;
reader.onload = function() {
    var img = new Image;
    img.src = reader.result;
};
reader.onloadend = function() {
    fileWidth = img.width;  
};

reader.readAsDataURL($('#submission-file')[0].files[0]);

console.log(fileWidth);
4

1 回答 1

1

您正在设置fileWidth异步回调,不能保证在访问变量之前已执行此方法。

暗示

尝试在您的回调中添加警报,并在访问变量之前立即发出警报。查看首先显示哪个警报。

于 2013-06-13T15:13:17.383 回答