网站通过cookie实现夜间模式——cookie mode字段值为sun时调整背景为白色,night时调整为黑色。
在调试中发现如果在下级目录设置mode值为night,回到上级目录后仍然显示白色背景,手动点击切换模式按钮后cookie中出现一个路径不同的mode字段。
原因是设置cookie时没有指定路径path,原setCookie代码:
function setCookie(name, value) { var Days = 1; var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + value + ";expires=" + exp.toGMTString(); }
更正后:
function setCookie(name, value) { var Days = 1; var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + value + ";expires=" + exp.toGMTString() + ";path=/"; }
这样指定路径后,在不同目录下设置cookie,其路径都为根目录。不管跳转到任何目录,读取的都为同一个cookie。