请求协助编写删除旧localStorage键的正确代码
解决方案
你的代码通过日期生成唯一的localStorage键来控制每日弹窗,要删除旧的键,我们可以遍历localStorage中所有以s开头的键,排除当天的键后全部移除。下面是整合了清除旧键功能的完整代码:
// 清除旧的localStorage键 function clearOldStorageKeys() { const todayKey = "s<?php echo date('dmY');?>"; // 从后往前遍历,避免删除键导致的索引混乱 for (let i = localStorage.length - 1; i >= 0; i--) { const key = localStorage.key(i); // 筛选出以"s"开头且不是当天的键并删除 if (key.startsWith('s') && key !== todayKey) { localStorage.removeItem(key); } } } function PopUp(show) { const todayKey = "s<?php echo date('dmY');?>"; document.addEventListener("click", function() { if (localStorage.getItem(todayKey) != 1) { window.open("https://www.google.com"); } localStorage.setItem(todayKey, 1); }); } window.onload = function() { // 先清除旧键,再初始化弹窗逻辑 clearOldStorageKeys(); setTimeout(function() { PopUp('show'); }, 500); }
代码说明
clearOldStorageKeys函数:遍历localStorage所有键,精准识别并删除以s开头的旧日期键,仅保留当天的有效键。- 将当天的键提取为变量,避免重复编写相同的PHP嵌入代码,提升代码可维护性。
- 页面加载时优先执行清除操作,防止localStorage积累过多无用数据。
内容的提问来源于stack exchange,提问作者edygbr
相关产品推荐
相关产品推荐

