代码之家  ›  专栏  ›  技术社区  ›  Mir Stephen

背景色cookie在JS中不起作用

  •  1
  • Mir Stephen  · 技术社区  · 7 年前

    这是我的HTML代码,由于一些未知原因,没有创建cookie。

    <select id="selectedColor" onchange="changeColor();">
        <option value="select color">Select Color</option>
        <option value="red">Red</option>
        <option value="blue">Blue</option>
        <option value="yellow">Yellow</option>
    </select>
    

    更改“选择”时,使用下面的设置背景色。

    function changeColor(){
        var selectedBgColor = document.getElementById("selectedColor").value;
        document.bgColor = selectedBgColor;
        document.cookie = "color="+selectedBgColor+";max-age=3600;";
    }
    

    在新页面加载cookie时,它不起作用,我从youtube上的Kudvenkat教程中获取了这些代码,他编写了相同的代码,但它在他的浏览器中起作用,但在我的浏览器中不起作用。你能帮我解决这个问题吗?

    window.onload(){
        if(document.cookie.length != 0){
            var splited = document.cookie.split("=");
            document.bgColor = splited[1];
            document.getElementById("selectedColor").value = splited[1];
        }
        else{
            alert("Cookie not found!");
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Oktay    7 年前

    您应该使用“;”分隔首先获取属性/值对。然后使用“=”拆分第一个元素(或搜索颜色键)以获取颜色值。

    查找颜色:

    var pairs = document.cookie.split(";");
    var color = pairs[0].split("=")[1];
    

    更改颜色:

    document.body.style.backgroundColor = color;