Javascript 持久性Cookie
Javascript 持久性Cookie,javascript,cookies,Javascript,Cookies,document.setbackground.bgcolor.value可认证地工作并存储十六进制值(例如黑色的“000000”)。当从更新值的实时表单中选择新的页面背景颜色时,该脚本还可用于更改页面背景颜色 我的问题是,虽然我的代码在浏览器中存储cookie,但当我关闭浏览器并重新打开时,cookie不起作用。我希望背景以存储在cookie中的内容开始。我的代码或浏览器设置是否有问题 function setBackground () { if (document.setbackgr
document.setbackground.bgcolor.value
可认证地工作并存储十六进制值(例如黑色的“000000”)。当从更新值的实时表单中选择新的页面背景颜色时,该脚本还可用于更改页面背景颜色
我的问题是,虽然我的代码在浏览器中存储cookie,但当我关闭浏览器并重新打开时,cookie不起作用。我希望背景以存储在cookie中的内容开始。我的代码或浏览器设置是否有问题
function setBackground () {
if (document.setbackground.bgcolor.value != "none"){
document.body.bgColor = "#" + document.setbackground.bgcolor.value;
document.cookie = "bgColor=" + document.setbackground.bgcolor.value +
";expires=Wednesday, 02-Mar-2020 12:00:00 GMT;";
}
}
此代码嵌入到setPreference.js文件中的以下HTML中:
<html>
<head>
<script src="setPreference.js"></script>
</head>
<body bgcolor="#9999CC">
<center>
<form name="setbackground">
Change background color?
<select name="bgcolor" onchange="setBackground();" size="1">
<option value="none">Select color</option>
<option value="9999CC">Lavender</option>
<option value="999966">Light Brown</option>
<option value="66FFCC">Light Green</option>
<option value="FFFFFF">White</option>
</select>
</center>
</form>
</body>
</html>
改变背景颜色?
选择颜色
薰衣草
浅棕色
浅绿色
白色
当用户从select
中选择项目时,您将bgColor设置为其值并创建cookie
但您还需要加载该cookie并设置bgColor。
您可以使用这样简单的方法(将其附加到js中):
你在哪里加载它?我已经更新显示HTML。
// document.cookie - name1=value1; name2=value2; name3=value3
function GetCookie(what)
{
var cookies = document.cookie.split(/; ?/g); // now we have array of name=value pairs
for(var i in cookies)
{
var pair = cookies.split("=", 1);
var name = decodeURIComponent(pair[0]);
var value = decodeURIComponent(pair[1]);
if (name == what)
return value;
}
}
window.onload = function ()
{
var color = GetCookie("bgColor"); // note that in the cookie can be ANY value as it comes from the user. So some condition to validate input wouldnt be bad idea
document.setbackground.bgcolor.value = color;
setBackground();
}