选择onchange本地存储不能在Firefox中工作

时间:2015-02-03 09:57:30

标签: javascript firefox local-storage background-color onchange

我发现了类似的问题,但答案是Jquery或不在这个特定情况下工作。 我有以下HTML代码

<html>
<body onload="load()">
<div>
    <select id="colorlist" onchange="saveSelect()">
        <option value="white">White</option>
        <option value="#E0C2FF">#E0C2FF</option>
        <option value="orange">Orange</option>
        <option value="purple">Purple</option>
    </select>
</div>
</body>
</html>

以及以下javascript代码在Chrome中有效但在Firefox中无效(我还没有在IE中测试)。

function saveSelect () {
    localStorage.bgColor = document.getElementById("colorlist").value;
    document.body.style.backgroundColor = localStorage.bgColor; 
}
function load() {
    if (localStorage.bgColor.length == 0) {
        localStorage.bgColor = "white";
    }
    else {
        document.body.style.backgroundColor = localStorage.bgColor;
        document.getElementById("colorlist").value = localStorage.bgColor;
    }
}

如果你知道Firefox的一个很好的解决方案,或者对HTML中的所有浏览器都是一个很好的解决方案,那么CSS或者最好用Javascript(请不要像Jquery这样的库),我会很感激。

Freez的消遣

http://jsfiddle.net/4a60k1vm/

有时它有时不起作用。

1 个答案:

答案 0 :(得分:2)

你应该使用

localStorage.setItem('bgColor', x);

而不是

localStorage.bgColor = x;

并且

localStorage.getItem('bgColor');

检索存储的值。

Firefox不再崩溃,因为它是使用localStorage的正确方法。