如果localstorage空无所事事。如果没有,做点什么

时间:2014-05-08 16:38:18

标签: javascript html

我是否可以创建一个在将某些内容放入localstorage时自动运行的函数?

我试图自己想出一些东西,但它似乎不起作用。

function () {
    if (localStorage.value == ""){
        //do nothing
    }
    else {
        document.getElementById("test").innerHTML = "" + (localStorage.getItem("server")) + ""  ;
    }
}

编辑:这段代码有效,但它不会自行更新,所以如果我在localstorage中输入一个新值,此代码将不会将其拾取并显示旧值仍然。

if (localStorage.length == 0){   
    document.getElementById("test").innerHTML = "Please go back and enter your name.";
}
else {
    document.getElementById("test").innerHTML = "" + (localStorage.getItem("server")) + ""  ;
}

3 个答案:

答案 0 :(得分:1)

如果您在localStorage周围编写了一个包装器并使用了它来代替设置,则可以在设置值时运行回调

var storage = {
   get: function(key){
      return localStorage.getItem(key);
   },
   set: function(key, value, callback){
      localStorage.setItem(key, value);
      if(typeof(callback) === 'function'){
          callback.call(null, value);
      }
   }
}

storage.set('user', "John Smith", function(value){
    console.log("You set your username to %s", value);
});

答案 1 :(得分:0)

这是查明localstorage是否为空的方法。

if (localStorage.length == 0){ ...

答案 2 :(得分:0)

我设法使用setInterval来刷新自己。

if (localStorage.length == 0){
    document.getElementById("test").innerHTML = "Please go back and enter your name.";
}
else {
    var myVar = setInterval(function(){myTimer()}, 1000);
    function myTimer() {
        var nameprint = document.getElementById("test").innerHTML ="" + (localStorage.getItem("server")) + "";
    }
}