使用Cookies在javascript中设置警报

问题描述:

我想创建一个脚本,当用户打开网站时,他或她会受到提示的欢迎,并且在提示后会说欢迎,而且还会在提示中输入什么将设置一个cookie 1分钟,我所面临的问题是:
1.警报显示不出来
2. cookie将不设置使用Cookies在javascript中设置警报

function checkCookie() 
{ 
    var username=getCookie("username"); 
    if (username!=null && username!="") { 
     alert("Welcome again "+ username); 
    } 
    else { 
     username=prompt("Please input name:",""); 
     if (username !=null && username!="") { 
      setCookie("username", username, 365); 
     } 
     else { 
      alert("Error"); 
     } 
    } 
} 
function setCookie (cname,cvalue,exdays) 
{ 
    var d = new Date(); 
    d.setTime (d.getTime()+ (10*1000)); 
    var expires ="; expires= "+ d.toGMTString(); 
    document.cookie = cname + "=" + cvalue + "; " + expires; +"; path /"; 
} 
function getCookie(cname) 
{ 
    var name = cname + "="; 
    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); 
     } 
     if (c.indexOf(name) == 0){ 
      return c.substring(name.length, c.length); 
     } 
    } 
    return ""; 
} 
+0

你是否尝试过日志记录以查看哪部分代码为什么不工作。你可以用console.log()来试试吗? – MatejMecka

+0

在控制台中没有错误 –

+0

我敢打赌,你的代码没有什么问题它只是到期时间很短(只需10秒) – Viney

尝试用var expires ="; expires= "+ d.toUTCString();

更换var expires ="; expires= "+ d.toGMTString();过期时间保存为Unix tim estamp。

编辑: 您还需要执行函数checkCookie。我认为这很明显。

https://jsfiddle.net/osgohu5b/

+0

我的问题是循环不shwo警报 –

+0

什么循环,你的意思是? – 2016-11-13 11:25:52

这里是你的代码的的jsfiddle: https://jsfiddle.net/19yp8ucd/3/。 它工作正常。你只需要调用checkCookie()函数。

checkCookie(); 

请参阅小提琴的.js中的最后一行。

此外,您没有使用setCookie()函数中的天数。你可以在这里检查setCookie(),getCookie(),eraseCookie()的一个很好的实现:https://*.com/a/24103596/3946520