如何捕获 JavaScript 中的 ERR_FILE_NOT_FOUND 错误

Ell*_*ang 6 javascript try-catch

我试图使用 javascript 测试某些文件是否存在。(不想使用 Ajax)。想要使用catch尝试处理ERR_FILE_NOT_FOUND错误。我试过

   try{
            img.attr('src', url)
        }catch(err){
            console.log("file"+ url + " doesn't exist");
        }
Run Code Online (Sandbox Code Playgroud)

但它没有捕获错误。如何捕获 ERR_FILE_NOT_FOUND 错误?

Mic*_*ace 1

设置图像属性 src 不会根据文件是否存在的结果抛出任何内容,它只会简单地显示图像或不显示图像。

您也许可以在加载完成后检查图像的大小并查看其宽度是否为 0,但这仍然只是一个 hack,可能只适用于图像。

你最好的选择是 jQuery 与 ajax 并使用一个简单的:

$.get("/path/to/file", function(data, status) {  
   console.log("File request status: "+status); 
});
Run Code Online (Sandbox Code Playgroud)

编辑:

您可能想检查评论中的 onerror 事件,您可以使用如下 html:

<img onerror="onerrFunction()">

或者

js:imgObject.onerror = function(){}


您提到的错误“ERR_FILE_NOT_FOUND”我假设您是从开发者控制台中的浏览器(例如 chrome)中找到的,如下所示:

截屏

但是,这不是抛出的 javascript 错误,因此您无法使用 js 代码捕获它。这只是一个浏览器错误,可帮助调试您的代码。可能还有其他方法来捕获此类错误,但至于您所要求的内容,这可能不在问题的范围内。