Заменить содержимое диапазона, если изображение не загружается

#javascript #html

#javascript #HTML

Вопрос:

У меня есть тег изображения и диапазона. Если изображение не загружается из-за ошибки, я хотел бы удалить элемент image из DOM и изменить содержимое диапазона с помощью id loadErrorSpan , чтобы сказать "Access Denied. Please login." , что в противном случае это было бы "Loading...Please wait"

 <img src="SomeImage.jpg" onerror="this.remove();" 
     alt="Some Image" width="100" height="120">
<br>
<span id="loadErrorSpan" style="font-family: sans-serif; 
   font-size:18px;text-align: center;color: #666;">Loading...Please wait</span>
  

Я смог удалить изображение по ошибке, но не изменить содержимое диапазона. Как мне это сделать, используя только JavaScript. Не следует использовать Jquery или любую другую библиотеку.

Ответ №1:

Вы могли бы создать onerror определенный обработчик, в котором также замените содержимое диапазона

 function onImgLoadError(imgEl) {
  imgEl.remove()
  document.getElementById('loadErrorSpan').innerText = 'Loading failed'
}  
 <img src="SomeImage.jpg" onerror="onImgLoadError(this)" alt="Some Image" width="100" height="120">
<br>
<span id="loadErrorSpan" style="font-family: sans-serif; 
   font-size:18px;text-align: center;color: #666;">Loading...Please wait</span>  

Ответ №2:

Вы можете получить span элемент, используя document.getElementById , а затем изменить содержимое span using innerHTML .

 function remove() {
  document.getElementById("loadErrorSpan").innerHTML = "Access Denied. Please login.";
}  
 <img src="SomeImage.jpg" onerror="remove();" 
     alt="Some Image" width="100" height="120">
<br>
<span id="loadErrorSpan" style="font-family: sans-serif; 
   font-size:18px;text-align: center;color: #666;">Loading...Please wait</span>