This question already has answers here:
Why doesn't my boolean value return correctly from localStorage?
                            
                                (3个答案)
                            
                    
                5年前关闭。
        

    

我试图根据localStorage键的值执行JavaScript函数。看起来很容易,但是我什么也没走。这是我目前拥有的-

        <script>
    window.onload = function ()
    {
        setInterval(function()
        {
            var one = localStorage.getItem('one');
            if (one !== true)
            {
                var elem = document.getElementById("one");
                elem.className = "hide";
            }
            else if (one !== false)
            {
                var elem = document.getElementById("one");
                elem.className = "show";
            }
            else {
                var elem = document.getElementById("one");
                elem.className = "show";
            }
        }, 50);
    }
</script>


这应该做的是每50毫秒检查一次localStorage中的键“ 1”。如果为true,请执行if语句下定义的函数。如果为假,则执行在else或else if语句下定义的另一个函数。

不幸的是,在localStorage中是否甚至没有条目都无关紧要,它总是执行第一个函数(隐藏对象)。我不知道为什么。

任何建议将不胜感激。

谢谢。

编辑-在其他帖子中找不到此信息,主要是因为我的问题与评论和答案中提到的要点有关。如果字符串"true"不在localStorage中,为什么该函数仍在执行?

最佳答案

严格存储在localStore中的任何内容都必须存储字符串键/值对。这意味着您实际上是在存储字符串:"true"而不是布尔值true

07-24 09:50
查看更多