首页 > 解决方案 > 如何在 JavaScript 中捕获 iframe src 加载错误?

问题描述

我正在函数中加载 iframe 源document.getElementById('iframeID').src = source here ,并且该函数每秒再次调用一次,直到满足我的要求。

当在此过程之间断开互联网连接时,我在网络面板中取消状态,并在再次连接互联网时继续处理(我的要求)。那么我怎样才能捕捉到这个错误并向用户显示错误消息。

我已经尝试过 jQuery 来分配src和捕获错误,但这不起作用并影响了我所需的功能。

我也尝试过使用 try/catch 但它没有用。

标签: javascripthtmljquery

解决方案


您可以通过向标签添加事件侦听器来捕获加载错误。这是一个使用无法解析的 URL 对图像执行相同操作的示例。

const image = document.getElementById("img");
const invalidUrl = "https://localhost:1000/doesNotExist.png";
img.src = invalidUrl;

image.addEventListener("error", event => {
  console.log(`${event.type}: Loading image`);
});
<img id="img" />

正如@epascarello 所提到的,我还建议构建一些功能,以在您离线时暂停每秒检查一次。

// resume automatic checks
window.addEventListener('online', () => console.log('Became online'));
// suspend automatic checks
window.addEventListener('offline', () => console.log('Became offline'));

推荐阅读