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

时间:2014-10-09 18:47:13

标签: javascript local-storage

我试图在第1页的localStorage中存储一个全局对象,该对象运行大约4秒,然后将我重定向到新页面,例如:page2。

为了将page1中的全局对象存储到localStorage,我使用:

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

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

window.localStorage["my_storage_vals"] = my_global_object;

Page2: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 个答案:

答案 0 :(得分:1)

你说你的网页是:

  1. xyz.site.com/myCode.html
  2. mylocal/page2.html
  3. localStorage对象绑定到本地域,因此xyz.site.comlocalStorage完全不同mylocal。因此,如果您在第一页中设置了一个属性,然后重定向到另一个网站,则localStorage将不再相同,您将无法访问您的媒体资源。

    要解决这个问题,你应该:

    • 将两个页面放在同一个域中
    • 或调用第二页在url中传递一些查询字符串
    • 或从第二页到第一页实施XMLHttpRequest