使用JavaScript实现页面加载1秒后单次刷新 现有代码语法错误求助
代码修正说明
原代码无致命语法错误,报错多来自ES6语法兼容、本地存储操作异常或事件触发不稳定问题,修正后可稳定实现「页面首次加载完成1秒后自动刷新1次」的需求:
window.addEventListener('load', function() { // 检测localStorage是否可用,避免隐私模式/禁用存储场景报错 var storageAvailable = (function() { try { var testKey = 'storage_test'; localStorage.setItem(testKey, testKey); localStorage.removeItem(testKey); return true; } catch (err) { return false; } })(); if (storageAvailable && !localStorage.getItem('reload')) { setTimeout(function() { localStorage.setItem('reload', 'true'); window.location.reload(); }, 1000); } }); // 改用beforeunload事件,比unload触发更稳定,确保标记正常清除 window.addEventListener('beforeunload', function() { try { localStorage.removeItem('reload'); } catch (err) {} });
主要调整点
- 将ES6箭头函数替换为普通函数声明,兼容不支持ES6的老旧浏览器,消除语法报错
- 新增localStorage可用性校验,避免浏览器禁用存储或隐私模式下直接抛出异常
- 替换
unload事件为beforeunload事件,事件触发逻辑更稳定,避免标记无法清除导致后续不再触发刷新 - 补全必要的代码格式与异常捕获,避免严格模式下的语法报错
内容的提问来源于stack exchange,提问作者Black
相关产品推荐
相关产品推荐

