javascript - 如何在 JavaScript 中捕获 iframe src 加载错误?
问题描述
我正在函数中加载 iframe 源document.getElementById('iframeID').src = source here
,并且该函数每秒再次调用一次,直到满足我的要求。
当在此过程之间断开互联网连接时,我在网络面板中取消状态,并在再次连接互联网时继续处理(我的要求)。那么我怎样才能捕捉到这个错误并向用户显示错误消息。
我已经尝试过 jQuery 来分配src
和捕获错误,但这不起作用并影响了我所需的功能。
我也尝试过使用 try/catch 但它没有用。
解决方案
您可以通过向标签添加事件侦听器来捕获加载错误。这是一个使用无法解析的 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'));
推荐阅读
- dotnetrdf - dotnetRDF 上的 VDS.RDF.Query.RdfQueryTimeoutException
- javascript - React JS 自定义表格 - 处理表格中的选择下拉列表
- python - python打开一个.xls文件一个smb服务器
- python - 通过在 python 中提供条件来创建多个数据框
- flutter - 需要一些帮助来解决这个问题“方法 'addListener' 是在 null 上调用的。”
- python - pip install 只在包中安装顶级 Python 文件
- sql - SQL/Doctrine - 使用 AND 过滤结果(多对多)
- angular - ng2-search-filter 在离子 4 中给出错误
- datetime - 类 ClockTriggerBuilder:特定日期和时间(仅一次)Google Sheet 脚本中的触发器每分钟不断重复执行
- react-hooks - 设置状态完成后如何调用函数(React Hooks)