为什么createObjectURL构造的图像宽度为0?

时间:2014-09-18 18:28:29

标签: javascript

这是我的代码,它应该从表单文件输入加载图像,如果它太大则调整它的大小。问题是,当我创建一个新的图像对象并设置其src时,它的宽度等于零。但是,当我将图像放入html时,它会正确显示。

var image = document.createElement('img');
var image_url = window.URL.createObjectURL(image_data);
image.src = image_url;
console.log('Width: ' + image.width);

- >宽度:0

1 个答案:

答案 0 :(得分:5)

在您设置src的那一刻,图像开始加载,但是当您请求宽度时它尚未加载。使用onload事件来修复:



var image = document.createElement('img');
var image_url = "http://domaingang.com/wp-content/uploads/2012/02/example.png"; //window.URL.createObjectURL(image_data);
image.src = image_url;
image.onload = function()
{
  alert(image.width);
}