我想在将JPG拖入浏览器窗口后收到它的宽度。奇怪的是,有时它完美地工作,有时会返回零宽度。
document.body.addEventListener('drop', function ( e )
{
e.stopPropagation();
e.preventDefault();
file = e.dataTransfer.files[0];
reader.readAsDataURL( file );
reader.onloadend = function()
{
var source = this.result;
var currentImg = new Image();
currentImg.src = source;
var someDiv = document.createElement("div");
someDiv.innerHTML = '<li>'+currentImg.width+'</li>';
document.getElementById("logs").appendChild(someDiv);
}
});
答案 0 :(得分:1)
这是因为您可能在加载图像之前获得宽度。 放一些像这样的代码,你就可以正常工作了。
...
var currentImg = new Image();
currentImg.onload = function() {
var someDiv = document.createElement("div");
someDiv.innerHTML = '<li>'+currentImg.width+'</li>';
document.getElementById("logs").appendChild(someDiv);
}
currentImg.src = source;
...
在设置sorce之前放置onload,因为onload是一个回调函数。