使用Cookies在javascript中设置警报

Using Cookies to set an alert in javascript

本文关键字:设置 javascript Cookies 使用      更新时间:2023-09-26

我正在尝试创建一个脚本,当用户打开网站时,他或她将受到一个提示的欢迎,在一个警告后会说欢迎,但也在提示中输入的内容将设置一个cookie 1分钟我面临的问题是:
1. 警告没有显示
2. Cookie不会设置

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 "";
}

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

过期时间保存为Unix时间戳。

编辑:

您还需要执行checkCookie函数。我认为这是显而易见的。

https://jsfiddle.net/osgohu5b/

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

checkCookie();

查看.js文件的最后一行

同样,您没有在setCookie()函数中使用天数。您可以在这里查看setCookie(), getCookie(), eraseCookie()的良好实现:https://stackoverflow.com/a/24103596/3946520