javascript - 存储在 localStorage 中时未检索全局对象

标签 javascript local-storage

我试图在 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);

最佳答案

您说您的页面是:

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

localStorage 对象绑定(bind)到本地域,因此 xyz.site.com 将具有与 完全不同的 localStorage mylocal。因此,如果您在第一页中设置属性,然后重定向到另一个站点,localStorage 将不再相同,并且您将无法访问您的属性。

要解决此问题,您应该:

  • 将两个页面放在同一个域中
  • 或者调用第二个页面,在网址中传递一些查询字符串
  • 或者实现从第二页到第一页的 XMLHttpRequest

关于javascript - 存储在 localStorage 中时未检索全局对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285839/

相关文章:

javascript - 检查键/值对对象数组的简洁方法?

javascript - 在 JavaScript 中,如何使用 [] 运算符访问从 Array 继承的对象?

javascript - HTML 5 通知在 Chrome 中无法在本地运行?

javascript - localstorage刷新页面保存

ios - 在 iOS 应用程序中访问 localStorage

javascript - : window. localStorage 和 localStorage 有什么区别吗?

javascript - 如果它有数据但类型或值不正确

javascript - 覆盖核心 JS 命令?

cookies - HTML5 网络存储 (localStorage) 是否提供优于 cookie 的安全优势?

javascript - 瘦客户端和胖客户端之间的通信