Использование onerror в iframe

Следующий фрагмент заменит изображение PNG изображением GIF, если ссылка не работает или не существует. Я пытался применить это на iframe, но это не похоже на работу. Это вообще возможно?

<html>

 <body>

 <iframe src="index1.html" onerror="this.onerror=null;this.src='https://media.giphy.com/media/3oEjI6SIIHBdRxXI40/giphy.gif';"> </iframe>
 <img src="test.png" onerror="this.onerror=null;this.src='https://media.giphy.com/media/3oEjI6SIIHBdRxXI40/giphy.gif';" />

 </body>

</html>

Был бы очень признателен за ответ. Заранее спасибо!:)

1 ответ

Событие onerror вызывается, если при загрузке внешнего файла (например, документа или изображения) возникает ошибка.

Содержимое iframe не является файлом, поэтому onerror не будет запущен. Вы можете использовать JS, чтобы проверить, получите ли вы ответ об успешном выполнении HTTP (200).

var myRequest = new Request('index1.html');

fetch(myRequest).then(function(response) {
  console.log(response.status); // returns 200
}).catch(function(error) {
  document.getElementById("iframe-id").src = "/your/file/path/here/somePage.html";
});
<iframe id="iframe-id" src="index1.html"> </iframe>
<img src="test.png" onerror="this.onerror=null;this.src='https://media.giphy.com/media/3oEjI6SIIHBdRxXI40/giphy.gif';" />

Другие вопросы по тегам