如何在页面加载失败且已过7秒时触发提示框
页面加载超时提示的正确实现
你原来的代码逻辑完全搞反了——把setTimeout直接赋值给window.onload,会导致页面加载完成后才启动定时器,这和你要的「页面加载失败且超过7秒时提示」的需求完全不符。
正确的思路是:先启动一个7秒的定时器,一旦页面在7秒内加载完成,就立刻清除这个定时器;如果7秒后页面还没加载完成,再触发提示逻辑。
以下是修正后的代码:
// 启动7秒定时器,保存定时器ID const loadTimeout = setTimeout(function() { // 修正字符串引号嵌套的语法错误 alert("Looks like this page hasn't loaded yet, it could be because your internet connection is slow, or the server is temporarily unavailable."); window.location = 'EXPLANATION PAGE'; }, 7000); // 页面加载完成时,清除定时器(说明加载成功,无需提示) window.onload = function() { clearTimeout(loadTimeout); };
代码说明
- 用
loadTimeout保存定时器ID,方便页面加载完成后取消计时 window.onload事件在页面所有资源加载完成时触发,此时调用clearTimeout终止定时器,避免错误提示- 若7秒后页面仍未加载完成,定时器会执行弹出提示并跳转页面的逻辑
- 修复了原代码中字符串单引号嵌套导致的语法错误(外层用双引号包裹,内部单引号正常使用)
内容的提问来源于stack exchange,提问作者Ali Vidler
相关产品推荐
相关产品推荐

