我试图在 page1 的 localStorage 中存储一个全局对象,该对象运行大约 4 秒,然后将我重定向到一个新页面,例如:page2。
为了将 page1 中的全局对象存储到 localStorage,我使用:
第1页-- 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);
但我仍然看不到我的对象被存储。它仍然是未定义的。我想在 Page2 上维护 globalObject 的状态。不在第 3 页或第 4 页等...我只想保存第 2 页上的值。
使用 json.stringify
var val = JSON.stringify(my_global_object);
localStorage.setItem("myVal",val);
var retrievedObject = localStorage.getItem("myVal");
alert(retrievedObject);
最佳答案
您说您的页面是:
xyz.site.com/myCode.html
mylocal/page2.html
localStorage
对象绑定(bind)到本地域,因此 xyz.site.com
将具有与 完全不同的
。因此,如果您在第一页中设置属性,然后重定向到另一个站点,localStorage
mylocallocalStorage
将不再相同,并且您将无法访问您的属性。
要解决此问题,您应该:
- 将两个页面放在同一个域中
- 或者调用第二个页面,在网址中传递一些查询字符串
- 或者实现从第二页到第一页的
XMLHttpRequest
。
关于javascript - 存储在 localStorage 中时未检索全局对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285839/