2016-03-07 69 views
0

我的設置 我有一個主頁,關於和聯繫頁面。頁面上沒有任何內容,但是每個頁面上的3個鏈接中的每一個都有3個鏈接,每個頁面中間有一個按鈕。本地存儲遞增數組爲20

我的目標 從按鈕被點擊進來的會話中的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

我認爲你沒有初始化的localStorage的「localStore」。

目前您設置變量localStorearray

嘗試設置它像:

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")); 

請按照您的意願修改您的代碼。

+0

它返回「Uncaught SyntaxError:意外的標記。」 在放入localstorage之前,我應該將它保留爲數組還是加入? – jobenscott

+0

嘗試設置localStorage.localStore =「」;的初始化。到除開始傳遞值的頁面之外的其他頁面。所以它不會在每個頁面加載時設置爲「空」。或者添加if語句來檢查localStorage.getItem(「localStore」)!=「」是否不設置爲「」。 –