我的设置 我有一个Home,About和Contact页面。页面上没有任何内容,但3页上每页都有3个链接,每页中间有一个按钮。
我的目标 单击按钮的会话中的URL将被推送到一个最多可包含20个链接的数组中。它可以是多次同一页面, 但基本上,按钮可以被点击20次(如果以后在同一个会话中完成,我将弄清楚如何捕获)。
我的问题
我无法将当前会话中的URL和当前URL传递到的构建数组传递到同一个构建数组中。以下是我目前正在使用的内容:
var seshStore = [],
localStore = [],
currentUrl = window.location.href,
newLink = $('<a class="new-link" href="' + currentUrl + '">new link</a>');
$(document).ready(function(){
// push into local store from last sesh
var storedLinks = JSON.parse(localStorage.getItem("localStore"));
var restoredLocalStore = JSON.parse(localStorage.getItem("restoredLocalStore"));
localStore.push(storedLinks);
localStore.push(restoredLocalStore);
for (var i = 0; i <= 20; i++) {
console.log(localStore[i]);
}
localStorage.setItem("restoredLocalStore", JSON.stringify(localStore));
$('.link-button').click(function(){
$(newLink).appendTo('body');
var reInitLink = currentUrl;
// push current url to sesh for its storage and a temp storage for local until next sesh
// seshStore.push(reInitLink);
// localStore.push(reInitLink);
localStorage.setItem("localStore", JSON.stringify(window.location.href));
// console.log(seshStore);
});
// localStorage.clear();
});
答案 0 :(得分:0)
我认为你没有对localStorage进行初始化&#34; localStore &#34;。
目前,您将变量 localStore 设置为数组。
尝试将其设置为:
localStorage.localStore = "";
localStorage仅支持字符串。
使用 JSON.stringify() [正如您使用]和 JSON.parse() [获取值]。
// Setting values
var example = ["link1", "link2", "link3"];
localStorage.setItem("names", JSON.stringify(names));
// Getting values
var localStore = JSON.parse(localStorage.getItem("localStore"));
请根据需要修改代码。