externalCSSContents = [];
function getExternalCSSContents(){
href = document.styleSheets[0].href;
$.post(href, function(result){
externalCSSContents.push(result);
alert(externalCSSContents.length); // 1
});
}
getExternalCSSContents();
alert(externalCSSContents.length); // 0
有人可以向我解释一下为什么在 $.post() 方法范围内数组 externalCSSContents 是本地的吗?
最佳答案
这是因为 ajax 请求尚未执行完毕,您正在警告数组的内容。
你可以这样做。
function getExternalCSSContents(){
href = document.styleSheets[0].href;
return $.post(href, function(result){ externalCSSContents.push(result); });
}
$.when( getExternalCSSContents() ).then(function(){
alert(externalCSSContents.length);
});
关于javascript - javascript 中的作用域(为什么 $.post() 方法数组的作用域是本地的?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141493/