JS不工作。怎么了?

时间:2017-07-08 14:44:54

标签: javascript html

我有这段代码:

window.store = {
        localStoreSupport: function() {
            try {
                return 'localStorage' in window && window['localStorage'] !== null;
            } catch (e) {
                return false;
            }
        },
        set: function(name,value,days) {
            if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString();
            }
            else {
                var expires = "";
            }
            if( this.localStoreSupport() ) {
                localStorage.setItem(name, value);
            }
            else {
                document.cookie = name+"="+value+expires+"; path=/";
            }
        },
        get: function(name) {
            if( this.localStoreSupport() ) {
                var ret = localStorage.getItem(name);
                //console.log(typeof ret);
                switch (ret) {
                  case 'true': 
                      return true;
                  case 'false':
                      return false;
                  default:
                      return ret;
                }
            }
            else {
                var nameEQ = name + "=";
                var ca = document.cookie.split(';');
                for(var i=0;i < ca.length;i++) {
                    var c = ca[i];
                    while (c.charAt(0)==' ') c = c.substring(1,c.length);
                    if (c.indexOf(nameEQ) == 0) {
                        ret = c.substring(nameEQ.length,c.length);
                        switch (ret) {
                          case 'true': 
                              return true;
                          case 'false':
                              return false;
                          default:
                              return ret;
                        }
                    }
                }
                return null;
            }
        },
        del: function(name) {
            if( this.localStoreSupport() ) {
                localStorage.removeItem(name);
            }
            else {
                this.set(name,"",-1);
            }
        }
    }
<!DOCTYPE html>
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <input id="a" placeholder="Var Name" /><br>
    <input id="b" placeholder="Var Value" /><br>
    <button onclick="n()">Save this var</button><br>
    <br><br>
    <input id="s" placeholder="Var to show" /><br>
    <button onclick="m()">Get the var's</button>
    <br><br>
    <input id="v" placeholder="var's to delete" /><br>
    <button onclick="del()">Delete var's</button>
    </body>
    </html>

为什么不工作?它没有保存输入,它一直返回“null”。 谁能给我一个关于我在这里做错了什么的提示?我无法弄清楚。它之前有效,我做了一些小改动,但我不知道我做了什么。提前谢谢!

1 个答案:

答案 0 :(得分:1)

我在一些测试后发现,在中的 get:function(name) if(this.localStoreSupport())阻止变量 ret 应该是这样的:

var ret = localStorage.getItem(name.value);

然后一切都应该像它应该的那样工作。

Click-> jsfiddle