我有以下代码片段:
var size;
function getImageSize(url)
{
var xhr = new XMLHttpRequest();
xhr.open('HEAD', url, true);
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4)
{
if (xhr.status == 200)
{
size = xhr.getResponseHeader('Content-Length');
alert(size);
}
}
};
xhr.send(null);
return size;
}
该函数的目的是返回(图像的)文件大小。
函数内的警报将始终返回正确的值,但函数本身将始终返回undefined
。为什么?
奇怪的是,如果我用 firebug 调试它,该函数总是会正确返回...
最佳答案
这是因为函数在返回响应和设置 size
之前返回。即异步执行。您希望传递一个回调函数,并以 size
作为参数来应用它。
关于javascript - 如何通过javascript获取 'Content-Length'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414570/