You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现localStorage变量判断与初始化且不覆盖已有数据?

问题:实现localStorage项的首次初始化且不覆盖已有数据

我需要实现以下功能:

  • 页面首次加载时设置一个localStorage项
  • 后续加载时,检查该项是否存在于localStorage中
  • 若存在则不做任何操作
  • 若不存在则设置该localStorage项

注意:页面其他地方会修改该变量,且修改后的内容在页面重新加载时必须保留。

但我在此处遇到了困难,目前我的代码如下:

function populateStorage() {
    var pictureSrc = [ new Logo({"picSrcl":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMzIiBoZWlna........48L3N2Zz4K"}),];
    var lS = JSON.parse(localStorage.getItem("Logos"));
    if (lS === true) {
        // 此处无法实现不覆盖Logos变量
    } else {
        localStorage.setItem("Logos", JSON.stringify(pictureSrc));
    }
}

请问如何实现不覆盖已存在的Logos变量?

在参考Darryl Noakes的回答后,首次加载时localStorage中并未生成该项;但手动设置该项后,代码能正常工作,页面重新加载及添加新内容后也能保留数据。

之后根据建议添加了window.onload = populateStorage();,代码可正常在首次加载时创建该项,最终代码如下:

function populateStorage() {
    var lS = localStorage.getItem("Logos");

    if (!lS) {
        var pictureSrc = JSON.stringify([
            new Logo({ "picSrcl": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMzIiBoZWlna........48L3N2Zz4K" })
        ]);

        localStorage.setItem("Logos", pictureSrc);
    }
}

window.onload = populateStorage();

内容的提问来源于stack exchange,提问作者SIMBIOSIS surl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:02:45