2015-05-06 4 views
-3

Я пытаюсь создать скрипт, который проверяет, существует ли логотип или нет. Если это не так, я хочу использовать innerHTML для вывода фирменного наименования.JS если изображение есть, дисплей. В противном случае отобразите текст

$.get(firmlogo) 
    .done(function() { 
     document.getElementById('firmlogo').innerHTML = "<img src="+logooffirm+">"; 

    }).fail(function() { 
     document.getElementById('firmlogo').innerHTML = "<h2>"+nameoffirm+"</h2>"; 

    }) 

Он отображает текст сейчас, даже если логотип есть. Ошибки я получаю:

Не удалось загрузить ресурс: сервер ответил со статусом 404 (не найден) http://www.example.com/[object%20HTMLDivElement] Не удалось загрузить ресурс: сервер ответил со статусом 404 (не найден)

Любые идеи о том, что я делаю неправильно?

+2

вашего 'firmlogo' является ссылкой на объект сНа, а не фактический URL – technophobia

+0

У вас есть настройка маршрута сервера для обработки, что' get' запрос? – tymeJV

+1

Почему вы не используете 'alt'? – tkay

ответ

3

Вы изобретаете колесо. HTML имеет встроенную функцию.

<h2><img src="bad_address" alt="Display this text instead" /></h2>

+0

Единственная проблема заключается в том, что вы получаете окно изображения вокруг текста alt – user2208768

0

Вы можете использовать alt сделать это без всех этих вещей. Если вы хотите проверить, доступен ли изображение в определенном URL-адресе, используйте этот код.

var image = new Image(); 
image.src = "img.jpg"; 
if (image.width == 0) { 
    console.log("no image"); 
} 
else console.log("image available"); 

Или вы можете использовать Ajax путь

$.ajax({ 
    url: "img.jpg", 
    type: "HEAD", 
    error: function() { console.log("no image"); }, 
success:function(){console.log("image available");} 

}); 
Смежные вопросы