当文件不存在时,如何在 Javascript 中得到 try/catch 错误?
How to get a try/catch error in Javascript when file doesn't exist?
我通过调用 local 文件(不是 URL)在元素中使用 Javascript 替换背景图像。
如果此文件不存在,我想尝试捕获错误。
所以我尝试了以下代码:
try {
thing.style.backgroundImage = str;
}
catch (err) {
console.log(err.message);
thing.style.backgroundImage = "none";
}
然而,即使是无意义的文件名似乎也可以通过并且不会产生错误。更糟糕的是,有时显示的背景图像是空的,有时是以前调用的图像。
这里有什么办法try/catch报错吗?
我会用 and use an Image()
constructor 来获取图像。如果你这样做了,你真的不需要 try-catch;您可以调用相应的函数来设置背景图像。
你可以这样做:
var img = new Image();
img.src = "pathToImage";
img.onerror = function(){ // Failed to load
thing.style.backgroundImage = "none";
};
img.onload = function(){ // Loaded successfully
thing.style.backgroundImage = img.src;
};
您也可以尝试使用 AJAX 而不是创建图像对象并将事件侦听器绑定到图像的错误和加载事件。
在使用 AJAX 时,如果您使用的是服务或提供动态图像的东西,您还可以依赖状态代码,这取决于您希望如何操作所有内容。
查看此垃圾箱,看看它是否适用于您的用例。
我通过调用 local 文件(不是 URL)在元素中使用 Javascript 替换背景图像。
如果此文件不存在,我想尝试捕获错误。
所以我尝试了以下代码:
try {
thing.style.backgroundImage = str;
}
catch (err) {
console.log(err.message);
thing.style.backgroundImage = "none";
}
然而,即使是无意义的文件名似乎也可以通过并且不会产生错误。更糟糕的是,有时显示的背景图像是空的,有时是以前调用的图像。
这里有什么办法try/catch报错吗?
我会用 Image()
constructor 来获取图像。如果你这样做了,你真的不需要 try-catch;您可以调用相应的函数来设置背景图像。
你可以这样做:
var img = new Image();
img.src = "pathToImage";
img.onerror = function(){ // Failed to load
thing.style.backgroundImage = "none";
};
img.onload = function(){ // Loaded successfully
thing.style.backgroundImage = img.src;
};
您也可以尝试使用 AJAX 而不是创建图像对象并将事件侦听器绑定到图像的错误和加载事件。 在使用 AJAX 时,如果您使用的是服务或提供动态图像的东西,您还可以依赖状态代码,这取决于您希望如何操作所有内容。
查看此垃圾箱,看看它是否适用于您的用例。