select onchange 本地存储在 firefox 中不工作

select onchange local storage not working in firefox

我发现了类似的问题,但答案是 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(请不要使用 [=32= 这样的库]), 我将不胜感激。

Freez 的建议

http://jsfiddle.net/4a60k1vm/

有时有效有时无效。

你应该使用

localStorage.setItem('bgColor', x);

而不是

localStorage.bgColor = x;

localStorage.getItem('bgColor');

检索您存储的值。

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