1

我正在编写基于教程的代码,并且在教程上代码有效,但是当我尝试自己做时,它没有。你能帮助我吗 ?

代码:(教程链接)。

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
            var user_name;
            var expires = new Date();
            if ((document.cookie == "") == false)
            {
                var length = document.cookie.length - 1;
                var message = document.cookie.substr(5, length);
                document.write("<h2><center>Welcome back, " + message + "</center></h2>");
            }

            function check()
            {
                user_name = document.getElementById("name").value;
                expires.setFullYear(expires.getFullYear() + 1);
                document.cookie = escape("name") + escape(user_name) + "; expires = " + expires.toGMTString();
                alert(document.cookie);
            }
        </script>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        Name: <input type="text" id="name" />
        <input type="button" value="Enter" onClick="check()" />
    </body>
</html>
4

1 回答 1

1

因为你已经提到I was creating this code that is tutorial based and on the tutorial了,所以如果只是为了一个test myself东西那么你可以考虑使用这个(Demo Here),只需在cookie名称和cookie值字段中分别输入cookie的名称和值,当你想要Add一个new cookie 和 to Deletea cookie 只需在 cookie name 字段中输入 cookie 的名称,对于,您只能通过使用拆分 cookie并制作循环并调用该函数View来添加Delete All按钮,您自己尝试一下。&eraseCookie()

此外,网上已经有更好的可以在真实案例中使用,但这个一点也不差。

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=/";
    return true;
}

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) {
    if(!name) {
        alert('\nPlease enter the name of cookie in cookie the name field.');
        return false;
    }
    if(readCookie(name)){
        if(createCookie(name,"",-1)) {
            alert('Cookie "' + name + '" has been deleted!');        
        }
    }
    else alert('Cookie "' + name + '" doesn\'t exist!');
}

function addCookie()
{
    cookie_name = document.getElementById("cName").value.replace(/^\s+|\s+$/g,'');
    cookie_value = document.getElementById("cValue").value.replace(/^\s+|\s+$/g,'');
    if(cookie_name.length && cookie_value.length){
        createCookie(cookie_name, cookie_value, 7);
        alert("New cookie has been added, \ncookie name : " + cookie_name + "\ncookie value : " + cookie_value);
    }
    else{
        alert("Please enter a name and value for the cookie.");
    }
}

function showCookie(name)
{
    if(!name) {
        alert('\nPlease enter the name of cookie in the  cookie name field.');
        return false;
    }
    var val = readCookie(name);
    if(val){
        alert(readCookie(name));
    }
    else alert('Cookie "' + name + '" doesn\'t exist!');
}

// Onload to check and greet
if(name = readCookie('name')) alert('Welcome back, ' + name);

示例在这里。

于 2013-07-14T02:22:08.930 回答