如何实现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
相关产品推荐
相关产品推荐

