js中,闭包函数怎么实时改变外部变量的值 15
functiongetResult(fileName){varimg=newImage();img.src="material/"+fileNamevarfinded=t...
function getResult(fileName) {
var img=new Image();
img.src="material/" + fileName
var finded=true;
img.onerror=function(){
finded=false;
alert("局部:"+finded); //局部1:false
};
alert("全局1:"+finded); //全局1:true
alert("全局2:"+finded); //全局2:false
if(finded==false){
return "<h1>没有此附件材料</h1>";
}else{
return "<img width='700px' src='material/" + fileName + "'/>";
}
}
当图片加载不到,finded就为false,但在闭包函数外部就仍然为true,只有先alert(finded)一次,这值(finded)才能改变,怀疑是内存问题,怎么解决呢?
我的需求是要知道这图片是否加载成功,不成功则返回文字,成功则显示图片。这个东西不用上面的还可以用什么呢?
第四行的var finded=true;改为finded=true;也是一样没有效果 展开
var img=new Image();
img.src="material/" + fileName
var finded=true;
img.onerror=function(){
finded=false;
alert("局部:"+finded); //局部1:false
};
alert("全局1:"+finded); //全局1:true
alert("全局2:"+finded); //全局2:false
if(finded==false){
return "<h1>没有此附件材料</h1>";
}else{
return "<img width='700px' src='material/" + fileName + "'/>";
}
}
当图片加载不到,finded就为false,但在闭包函数外部就仍然为true,只有先alert(finded)一次,这值(finded)才能改变,怀疑是内存问题,怎么解决呢?
我的需求是要知道这图片是否加载成功,不成功则返回文字,成功则显示图片。这个东西不用上面的还可以用什么呢?
第四行的var finded=true;改为finded=true;也是一样没有效果 展开
1个回答
2017-06-06
展开全部
img.src="material/" + fileName 放在img.onerror回调函数的后面
追问
放在后面还是一样的情况,并没有变化呢,关键是要知道是否调用了onerror这个回调函数,我做后台的,并不太了解前端
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询