我正在尝试执行JavaScript函数,具体取决于localStorage键的值。这似乎很容易,但我没有到达任何地方。这就是我目前所拥有的 -
<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>
这应该做的是每隔50ms检查一次localStorage中的密钥“one”。如果是,则执行if语句下定义的函数。如果为false,则执行在else或else语句下定义的其他函数。
不幸的是,无论是否在localStorage中都有条目,它总是执行第一个函数(隐藏对象)。我不确定为什么。
任何建议都将不胜感激。
感谢。
编辑 - 我在其他帖子中找不到此信息,主要是因为我的问题与评论和答案中提到的要点有关。如果字符串"true"
不在localStorage中开始,为什么函数仍在执行?
答案 0 :(得分:1)
存储在localStorage中的任何内容都严格来存储 string 键/值对。这意味着您实际存储的是字符串:"true"
而不是布尔值true
。