我正在从事的项目中具有以下功能:
var makePreviewSimulationDiv = function(){
var errorFlag = false;
imgError = function(image){
errorFlag = true;
};
var that = this, proxy = new IAProxy(),
//imageSource = real_image_source,
imageSource = "",
image = that.append('<img class="foo" onerror="imgError(this);
"src=' + imageSource + '></img>')
.children('.sim-ui-preview-sim-image'),
container = image.run(encapsulateImg),
iconsDiv = that.append('<div class="bar"></div>')
.children('.bar');
if (!errorFlag){
image.load(function(){
container.run(zoomMaxWidth)
.run(makeDraggable)
.run(makeZoomable);
});
} else{
alert('image load error!');
}
return that;
};
目前,我将图像 src 设置为""
尝试调试函数的行为,如果它得到一个错误的图像 src 或没有图像 src,以使其优雅地失败。目前,我的代码正确捕获错误并抛出alert('image load error!');
. 但是,如果我在本地限定我的imgError
函数,即将代码更改为以下内容:
var imgError = function(image){
errorFlag = true;
};
imgError
onerror
在图像加载时触发时无法再找到。in 调用的函数的范围是什么onerror
,我可以imgError
在不全局声明的情况下进入它的范围并且仍然能够errorFlag
从内部访问imgError
吗?