我在我的网站上添加了背景颜色变化效果。现在我希望该更改适用于我的所有其他页面。我在理解 cookie 功能时遇到了麻烦,因此了解我正在从事的工作的一些背景信息确实会有所帮助。
我的JS:
function background(color){document.body.style.backgroundColor=color;}
我的 HTML:
<tr><td class="bggreen" style="cursor: pointer" onclick="background('green')"> </td></tr>
我的CSS:
.bggreen { background-color: green; }
代码一切正常,因此其中一些信息可能毫无意义。只是,如果我要构建一个 cookie 以使这些颜色更改应用于我站点中的所有相关页面,我将如何处理?没有偏好使用 PHP 还是 JS。我只想要最实际的东西。
最佳答案
以下是我在 javascript 中使用的一些简单的 cookie 函数。您可以将最新的颜色值存储在 cookie 中,然后在页面初始化时,您可以从 cookie 中读取该值并适本地设置颜色:
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
name
和 value
是字符串。 days
是 cookie 过期前的天数。
因此,无论何时更改颜色,您都可以这样做:
function background(color){
document.body.style.backgroundColor = color;
createCookie("backgroundColor", color, 365);
}
并且,当页面首次加载时,您可以这样做:
var color = readCookie("backgroundColor");
if (color) {
document.body.style.backgroundColor = color;
}
关于javascript - 将 Cookie 添加到输入背景颜色更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20156129/