Javascript 为什么饼干在一段时间后没有改变?还是返回最后一个值?
在一次或两次更改后或刷新页面时,Cookie值不会更改 它被用来改变网站的模式(夜灯)。 谢谢你的帮助Javascript 为什么饼干在一段时间后没有改变?还是返回最后一个值?,javascript,cookies,Javascript,Cookies,在一次或两次更改后或刷新页面时,Cookie值不会更改 它被用来改变网站的模式(夜灯)。 谢谢你的帮助 window.onload = function (){ changeMode(); } function setCookie(cname,cvalue,exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expir
window.onload = function (){
changeMode();
}
function setCookie(cname,cvalue,exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function changeMode() {
var user=getCookie("user");
if (user != "") {
if(user == "light"){
dark();
setCookie("user", "dark", 30);
}else if(user == "dark"){
light();
setCookie("user", "light", 30);
}
} else {
user = "light";
if (user != "" && user != null) {
setCookie("user", user, 30);
light();
}
}
}
window.onload=函数(){
changeMode();
}
函数setCookie(cname、cvalue、exdays){
var d=新日期();
d、 设置时间(d.getTime()+(exdays*24*60*60*1000));
var expires=“expires=“+d.togmString();
document.cookie=cname+“=”+cvalue+”;“+expires+”;path=/”;
}
函数getCookie(cname){
变量名称=cname+“=”;
var decodedCookie=decodeURIComponent(document.cookie);
var ca=decodedCookie.split(“;”);
对于(变量i=0;i
文件:
结果是:
我可以发现我的代码有什么问题,并且没有理解如何使用cookies第一个问题是我必须添加另一个函数来记住浏览器是的,我做了类似的事情,但我在刷新后更改了模式,因为我在onload函数中有change mode函数。。。第二个错误是,我认为如果我们在到期日期之前可以更新cookies,但事实并非如此,因此我删除了要更新的到期日期并重新设置 你可以在任何地方自由使用我的脚本,谢谢你的帮助 守则:
window.onload = function (){
rememberMode();
}
function setCookie(cname,cvalue) {
document.cookie = cname + "=" + cvalue;
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function rememberMode() {
var user=getCookie("user");
if (user != "") {
if(user == "dark"){
dark();
}else if(user == "light"){
light();
}
} else {
setCookie("user", "light");
light();
}
}
function changeMode() {
var user=getCookie("user");
if(user == "light"){
dark();
setCookie("user", "dark");
}else if(user == "dark"){
light();
setCookie("user", "light");
}
}
function dark() {
document.getElementById("2").style.backgroundColor = "#171717";
document.getElementById("h2").style.color = "#F1F1F1";
document.getElementById("imod").src = "https://kurddoblaj.com/sun.gif";
document.getElementById("search-box").style.backgroundColor = "#2A2A2A";
document.getElementById("search").style.backgroundColor = "#2A2A2A";
document.getElementById("search").style.color = "white";
document.getElementById("z").style.color = "#595959";
document.body.style.backgroundColor = "#171717";
var elems = document.getElementsByClassName('post');
for(var i = 0; i < elems.length; i++) {
elems[i].style.backgroundColor = "#2A2A2A";
elems[i].style.color = "#F1F1F1";
}
}
function light() {
document.getElementById("2").style.backgroundColor = "#E3E3E3";
document.getElementById("h2").style.color = "black";
document.getElementById("imod").src = "https://kurddoblaj.com/moon.gif";
document.getElementById("search-box").style.backgroundColor = "white";
document.getElementById("search").style.backgroundColor = "white";
document.getElementById("search").style.color = "black";
document.getElementById("z").style.color = "black";
document.body.style.backgroundColor = "#E3E3E3";
var elems = document.getElementsByClassName('post');
for(var i = 0; i < elems.length; i++) {
elems[i].style.backgroundColor = "white";
elems[i].style.color = "black";
}
}
window.onload=函数(){
记忆电极();
}
函数setCookie(cname,cvalue){
document.cookie=cname+“=”+cvalue;
}
函数getCookie(cname){
变量名称=cname+“=”;
var decodedCookie=decodeURIComponent(document.cookie);
var ca=decodedCookie.split(“;”);
对于(变量i=0;i
当我从我的服务器上运行JavaScript(不是本地运行,因为本地cookie已关闭)并放入console.log以查看getCookie的结果时,每次刷新时,它都会根据需要从空变为亮变为暗,从亮变为暗。你确定cookies没有被设置为属性,并且问题不在你的明暗功能中(它们是怎么做的)?我现在已经尝试了你的站点,它似乎正在工作(太阳变为月亮,反之亦然)。还有问题吗?注意:如果你在欧洲看到的网站上设置cookie,你需要告诉用户并要求他们接受-请参阅GDPR和欧盟的信息。当然,我会在项目运行后通知用户接受,但该项目是针对伊拉克库尔德斯坦的,但他们也需要感谢您的建议,我确信代码在3到4次之后都能正常工作,我认为有一些小故障。这是铬的问题吗?或者是我的错?我想你可能有时间问题,如果我很快刷新(按浏览器栏中的enter键),我可以让它出现故障,但如果我等几秒钟(使用Edge,基本上与Chrome相同),很多次都没问题。你能在回答中输入你从月球移动到太阳的代码吗?这纯粹是通过CSS实现的吗?或者,当用户单击窗口上的enter键时(而不是通过浏览器地址栏上的enter键刷新)。@AHaworth你是对的,我用另一个浏览器测试了它,但它没有