独立的当地储藏室

时间:2012-09-26 16:52:57

标签: html5 local-storage

我在foo.com/test1/test1.html下有一个网站,另一个在foo.com/test2/test2.html

test1.html看起来像这样:

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script>
        document.ready = function(){
            var name = localStorage.getItem("name");
            if(name){
                console.log("name is defined");
            }else{
                console.log("name is not defined");
                localStorage.setItem("name", "test1");
            }
            $('#name').text(name);
        }
    </script>
</head>
<body>
    <p id="name"></p>
</body>
</html>

test2.html是这样的:

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script>
        document.ready = function(){
            var name = localStorage.getItem("name");
            if(name){
                console.log("name is defined");
            }else{
                console.log("name is not defined");
                localStorage.setItem("name", "test2");
            }
            $('#name').text(name);
        }
    </script>
</head>
<body>
    <p id="name"></p>
</body>
</html>

我的问题是,有可能实现这一点,如果我去test1,name的值是“test1”,如果我去test2,名称将是test2。基本上我怀疑我需要以不同的方式命名它们,但我宁愿不这样做。对此有什么好的工作吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

每个域定义本地存储。您应该在localstorage中保留对象以维护页面上下文。

这是解决方案。

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script>
        document.ready = function(){
            var thispage = JSON.parse(localStorage.getItem("page1"));
            if(thispage.name){
                console.log("name is defined");
            }else{
                console.log("name is not defined");
                var obj={name : "test1"}

                localStorage.setItem("page1", JSON.stringify(obj));
            }

        }
    </script>
</head>
<body>
    <p id="name"></p>
</body>
</html>

类似于所有页面。