2014-10-09 72 views
0

我試圖在localStorage中存儲一個全局對象,該對象運行約4秒,然後將我重定向到一個新頁面,例如:page2。當存儲在localStorage中時未檢索到全局對象

對於第1頁存儲全局對象到localStorage的使用:

Page1-- xyz.site.com/myCode.html

window.my_global_object = { 
property1: "abc", 
property2: "pqr" 
} 

window.localStorage["my_storage_vals"] = my_global_object; 

第2頁:mylocal/page2.html

var retrievedObject = window.localStorage["my_storage_vals"]; 
          alert(retrievedObject); 

但仍然看不到我的對象被存儲。它仍然是未定義的。我想維護第2頁上globalObject的狀態。不在第3頁或第4頁等。我只想保存第2頁的值。

透過JSON.stringify

var val = JSON.stringify(my_global_object); 
      localStorage.setItem("myVal",val); 

var retrievedObject = localStorage.getItem("myVal"); 
          alert(retrievedObject); 
+1

localStorage將所有東西都作爲字符串存儲,您需要將JSON.stringify放入localStorage和JSON.parse時檢索 – 2014-10-09 18:48:39

+0

是的,我也試過了。但我沒有看到價值 – appleris 2014-10-09 18:49:10

+0

它應該像@PatrickEvans所說的那樣工作。 – DontVoteMeDown 2014-10-09 18:51:06

回答

1

你說,你的網頁是:

  1. xyz.site.com/myCode.html
  2. mylocal/page2.html

localStorage對象綁定到本地域,所以xyz.site.com wi會有一個完全不同的localStoragemylocal。因此,如果您在第一頁中設置了一個媒體資源,然後重定向到另一個網站,則localStorage將不再相同,並且您無權訪問您的媒體資源。

要解決這一點,你應該:

  • 從第二把兩個頁面上相同的域
  • 或撥打第二個頁面傳遞一些查詢字符串的URL
  • 或實施XMLHttpRequest到第一頁。
相關問題