【问题标题】:Javascript using for web storage用于网络存储的 Javascript
【发布时间】:2017-11-30 08:55:32
【问题描述】:

以下是我正在尝试构建的网站的代码。我不断检查 JavaScript 以查看是否有错误,但找不到出错的地方。我试图让访问我网站的用户从下拉菜单中选择背景颜色。我也在努力做到这一点,以便当用户回到我的网站时,使用网络存储的背景仍然相同。下面是我的代码:

代码:

<script type="text/javascript">

    function setBackground()
    {
        localstorage.bgColor = document.getElementById("Color_list").value;
        document.body.style.backgroundColor = localStorage.bgColor;
    }

    function loadBackground()
    {
        if (localStorage.bgColor.length == 0)
        {
            localStorage.bgColor = "White";
        }
        else
        {
            document.body.style.backgroundColor = localStorage.bgColor;
            document.getElementById("Color_list").value = localStorage.bgColor;
        }

    }
</script>





<body onLoad="javascript: loadBackground();">

    <select id="Color_list">

        <option value="White">White</option>
        <option value="Gray">Gray</option>
        <option value="Orange">Orange</option>
        <option value="Purple">Purple</option>

    </select>

    <input type="button" value="Set Background color" onClick="javascript: setBackground();" />
</body>

【问题讨论】:

    标签: javascript javascript-objects dom-events


    【解决方案1】:

    你有2个错误

    1. localStorage 代替 setBackground 方法中的 localstorage
    2. 在 loadBackground 方法中执行此操作

      if (!localStorage.bgColor)
      {
          localStorage.bgColor = "White";
      }
      

    if (localStorage.bgColor.length == 0)
        {
            localStorage.bgColor = "White";
        }
    

    此外,在访问 localStorage 的属性时,它的 setItem 和 getItem 更好

    【讨论】:

    • 你能解释一下你的答案吗?为什么!localStorage.bgColor 在使用?
    • 如果你没有设置localStorage.bg,localStorage.bg.length会抛出一个错误,因为它试图访问一个不存在的obj的length属性。所以你必须先检查是否有任何属性集
    • 那为什么localStorage.bgColor.length == 0是个错误呢?
    • 因为当你第一次运行你的代码时 localStorage.bgColor 是未定义的,因此它的 .length 会抛出一个错误,因为它试图访问一个不存在的 obj 的长度属性
    【解决方案2】:

    你有一个错字,试试这个改变

    localStorage.bgColor = document.getElementById("Color_list").value; //it was localstorage earlier
    

    【讨论】:

      【解决方案3】:

      使用localStorage.setItem('bgColor ', document.getElementById("Color_list").value);

      在本地存储中设置值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-07
        • 1970-01-01
        • 1970-01-01
        • 2013-07-04
        • 2012-05-18
        • 1970-01-01
        • 2013-08-04
        相关资源
        最近更新 更多