Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cookies的初始化和删除_Javascript_Cookies - Fatal编程技术网

Javascript Cookies的初始化和删除

Javascript Cookies的初始化和删除,javascript,cookies,Javascript,Cookies,我是javascript新手,在cookies方面遇到了以下问题 问题 以下问题中的cookie值是一个名称 我正试图从cookie中显示用户名。打开页面时,如果存在cookie值,则cookie值必须与相应的问候语一起显示。但是,如果打开页面时没有cookie值,则必须弹出一个提示框,询问用户的姓名。如果用户的名称(cookie值)在页面上显示错误,例如John打开页面,显示的名称是Paul,则他必须单击“如果您不是Paul,请单击此处”,cookie必须删除,John必须看到一个提示框,询问

我是javascript新手,在cookies方面遇到了以下问题

问题

以下问题中的cookie值是一个名称

我正试图从cookie中显示用户名。打开页面时,如果存在cookie值,则cookie值必须与相应的问候语一起显示。但是,如果打开页面时没有cookie值,则必须弹出一个提示框,询问用户的姓名。如果用户的名称(cookie值)在页面上显示错误,例如John打开页面,显示的名称是Paul,则他必须单击“如果您不是Paul,请单击此处”,cookie必须删除,John必须看到一个提示框,询问他的姓名。然后,新的cookie值必须是John在提示框中输入的值

代码

问候语部分工作得很好。我有以下代码。仅供参考,我正在网站上测试,而不是在本地机器上测试

<script>
var now = new Date();
var hours = now.getHours();
var name, greeting, count,a;
if(hours < 12)
{
    greeting = "Good Morning";
}
else
{
    if(hours < 18)
    {
        greeting = "Good Afternoon";
    }
    else
    {
        greeting = "Good Evening";
    }
}
if(document.cookie)
{
    var newCookie = document.cookie;
    var cookieVals = newCookie.split("=");
    name = cookieVals[1];
}
else 
{
    name = window.prompt("Please enter your name","name");
    document.cookie = "name=" + name;
}
a = greeting + " " +name + ", Welcome to Survey Page! </h1>" + "<a href = '#' onClick='return false;' onMouseDown='wrongPerson()'> " +"Click here if you are not " + name + "</a>";
function wrongPerson()
{
    document.cookie= "name=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
    location.reload();
}
<p><span id="verify"></span></p>
<script>document.getElementById("verify").innerHTML = a;</script>

var now=新日期();
var hours=now.getHours();
变量名称、问候语、计数、a;
如果(小时数<12)
{
问候语=“早上好”;
}
其他的
{
如果(小时数<18)
{
问候语=“下午好”;
}
其他的
{
问候语=“晚上好”;
}
}
if(document.cookie)
{
var newCookie=document.cookie;
var cookieVals=newCookie.split(“”);
name=cookieVals[1];
}
其他的
{
name=window.prompt(“请输入您的姓名”、“姓名”);
document.cookie=“name=”+name;
}
a=问候语+“”+姓名+”,欢迎来到调查页面!+“”;
功能错误的人()
{
document.cookie=“name=;expires=Thu,1970年1月1日00:00:00 UTC”;
location.reload();
}

document.getElementById(“验证”).innerHTML=a;
输出

我得到以下输出

晚上好74bec77-148138c40e3-42e9b6fa-5_ga,欢迎来到调查页面!如果您不是74bec77-148138c40e3-42e9b6fa-5,请单击此处_ga

当我重新加载页面或单击链接“如果您不是74bec77-148138c40e3-42e9b6fa-5;_-ga,请单击此处”时,不会发生任何事情

有人能告诉我这一点吗?

您的javascript:

if(document.cookie)
{
    var newCookie = document.cookie;
    var cookieVals = newCookie.split("=");
    name = cookieVals[1];
}
检查cookie中是否有任何内容,如果有,则不会要求输入新名称。当用户点击我不是。。。然后,函数
errowperson()
将cookie设置为“name=…..”,当您的
if
开始比较时,它将始终返回true,因为

在javascript中,非零值为
TRUE

因此,它会认为用户在场。如果要使函数
ErrorPerson()
生成cookie
0
,则
If
将获得
FALSE
,并且该语句(用于请求名称)将被执行

固定功能:

function wrongPerson()
{
    document.cookie= "";
    location.reload();
}

创建/调用函数更容易理解


函数setCookie(cname、cvalue、exdays){
var d=新日期();
d、 设置时间(d.getTime()+(exdays*24*60*60*1000));
var expires=“expires=“+d.togmString();
document.cookie=cname+“=”+cvalue+”;“+expires;
}
函数getCookie(cname){
变量名称=cname+“=”;
var ca=document.cookie.split(“;”);

对于(var i=0;iI),强烈建议使用jQuery cookie插件:
        <!DOCTYPE html>
<html>
<head>
<script>

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

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) != -1) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

function checkCookie() {
    var user=getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
       user = prompt("Please enter your name:","");
       if (user != "" && user != null) {
           setCookie("username", user, 30);
       }
    }
}

</script>
</head>
<body onload="checkCookie()">
</body>
</html>