2015-07-06 5 views
2

Я пытался проверить, существует ли какой-либо файл с помощью javascript. (Не хотите использовать Ajax). Хотите использовать catch, попробуйте обработать ошибку ERR_FILE_NOT_FOUND. Я попыталсяКак уловить ошибки ERR_FILE_NOT_FOUND в JavaScript

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

но не догнать error.How я поймать ошибку ERR_FILE_NOT_FOUND?

+0

Попробуйте установить события-обратные вызовы как 'onerror' –

+0

. Onerror присоединяет функцию обратного вызова, но она не пропускает сообщение об ошибке. Я думаю, используя try catch для обработки ошибки. Есть еще идеи? –

+0

Вы не можете использовать try/catch для асинхронных событий. Я не эксперт по javascript, но полагаю, что загрузка изображения асинхронна, иначе она блокирует ваш основной поток. – Fygo

ответ

1

Установка атрибута изображения src не собирается бросать что-либо по результатам существующего файла или нет, он просто покажет изображение или не отобразит его.

Возможно, вам удастся проверить размер изображения после его загрузки и посмотреть, имеет ли он ширину 0, но это все еще просто взломать и может работать только для изображений.

Лучше JQuery с AJAX и использовать простой:

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

EDIT:

Вы можете проверить OnError события, как в комментариях, вы можете использовать HTML как:

<img onerror="onerrFunction()">

или

ЯШ: imgObject.onerror = function(){}


Ошибка вы имеете в виду, как «ERR_FILE_NOT_FOUND» Я предполагаю, что вы найти из браузера, таких как хром в консоли разработчика, как так:

screenshot

Тем не менее, это не javascript erro, который вызывается, поэтому вы не можете поймать его с помощью js-кода. Это просто ошибка браузера, чтобы помочь отладить ваш код. Могут быть другие способы поймать такие ошибки, но что касается того, о чем вы спрашиваете, это, вероятно, не входит в сферу вопросов.

+0

Я намерен сохранить локальную страницу до сих пор. onerror присоединяет функцию обратного вызова, но она не пропускает сообщение об ошибке. Я думаю, используя try catch для обработки ошибки. Есть еще идеи? –

+0

@ElliscopeFang Я просто добавил к своему ответу, что может быть полезно – SnoApps

Смежные вопросы