javascript - 将 Cookie 添加到输入背景颜色更改

标签 javascript html css cookies

我在我的网站上添加了背景颜色变化效果。现在我希望该更改适用于我的所有其他页面。我在理解 cookie 功能时遇到了麻烦,因此了解我正在从事的工作的一些背景信息确实会有所帮助。

我的JS:
function background(color){document.body.style.backgroundColor=color;}

我的 HTML:
<tr><td class="bggreen" style="cursor: pointer" onclick="background('green')">&nbsp;</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);
}

namevalue 是字符串。 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/

相关文章:

html - 如何在图像顶部添加一个 h1,在中间添加一个段落并使图像变暗?

javascript - KineticJS 拖动一个连线的盒子

html - 如何固定图像之间的距离?

html - 我如何在图像下制作一个小的 'shadow',就像这个一样?

javascript - 放置 JS 后导航器停止工作

c# - 在asp.net中获取服务器端的html输入值

javascript - 如何使用 jquery 设置边距?

javascript - 如何从表的开头 colspan tr 表

php - 如何将 HTML 转换为 BBCode

javascript - jquery加载函数不调用Spring Boot Controller 来替换thymeleaf模板片段