Javascript 如何启用Cookie

Javascript 如何启用Cookie,javascript,Javascript,我的任务是读取、写入和启用cookie,以便用户名将存储在变量中,然后写入cookie。我的问题是,代码的最后一部分似乎正在工作。但是假设用户名存储到变量中的第一部分不起作用,我可以看到,当我运行代码时,前两个警报框没有显示。它应该以“你好,我是你的宠物摇滚”打开,在我最后一次点击iRock后,图像应该会变成一个快乐的iRock。但事实并非如此。我猜是因为饼干没人读。任何建议。这是链接:/iRockChapter3.htm <!DOCTYPE html PUBLIC "-//W3C//DT

我的任务是读取、写入和启用cookie,以便用户名将存储在变量中,然后写入cookie。我的问题是,代码的最后一部分似乎正在工作。但是假设用户名存储到变量中的第一部分不起作用,我可以看到,当我运行代码时,前两个警报框没有显示。它应该以“你好,我是你的宠物摇滚”打开,在我最后一次点击iRock后,图像应该会变成一个快乐的iRock。但事实并非如此。我猜是因为饼干没人读。任何建议。这是链接:/iRockChapter3.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org   /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>iRock - The Virtual Pet Rock</title>
<link href="donut_stylesheet/donut.css" rel="stylesheet" type="text/css" />

<script type ="text/javascript" >
var userName;

function resizeRock(){
document.getElementById("rockImg").style.height = (document.body.clientHeight - 100) * 0.9;
}

function greetUser(){
userName = readCookie("rock_username");
if(userName)
alert("Hello " + userName + ", I missed you.");
else 
alert("Hello, I am your pet rock");
}

function touchRock(){
if(userName)
    alert("I like attention," + userName + ". Thank you.");
}

    userName = prompt("What is your name?", "Enter name here.");
if(userName) 
alert("It is good to meet you, " + userName + ".");
writeCookie(irock_username", userName, 1 * 365);


document.getElementById("rockImg").src = "rock_happy.png";
setTimeout("document.getElementById(('rockImg').src = 'images/rock.png';", 5 * 60 * 1000);





</script>
</head>


<body onload="resizeRock(); greetUser(); onResize="resizeRock();">
<img id="rockImg" src="images/rock.png" alt="iRock" style="cursor:pointer"   onClick="touchRock();" />
</body>
</html>

iRock-虚拟宠物摇滚
var用户名;
函数resitzerock(){
document.getElementById(“rockImg”).style.height=(document.body.clientHeight-100)*0.9;
}
函数greetUser(){
用户名=readCookie(“rock_用户名”);
如果(用户名)
提醒(“你好”+用户名+”,我想你了。”);
其他的
警惕(“你好,我是你的宠物石”);
}
函数touchRock(){
如果(用户名)
警惕(“我喜欢关注,“+userName+”。谢谢。”);
}
用户名=提示(“您的名字是什么?”,“在此处输入姓名。”);
如果(用户名)
提醒(“很高兴认识你,“+userName+”);
writeCookie(irock_用户名),用户名1*365;
document.getElementById(“rockImg”).src=“rock_happy.png”;
setTimeout(“document.getElementById(('rockImg').src='images/rock.png';”,5*60*1000);

setTimeout中有一行代码:

setTimeout("document.getElementById(('rockImg').src = 'images/rock.png';", 5 * 60 * 1000);
这在语法上是错误的

setTimeout("document.getElementById('rockImg').src = 'images/rock.png';", 5 * 60 * 1000);
更好的办法是:

setTimeout(function()
{
    var rockImg = document.getElementById('rockImg');
    if(rockImg != null)
    {
        rockImg.src = 'images/rock.png';
    }
}, 5 * 60 * 1000);
function(){…}
创建匿名函数。
它以代码而不是文本的形式存在(这意味着任何语法都可以使用它),并且易于阅读。

让我们来分析一下

如何启用Cookie

自2000年以来,几乎所有浏览器都默认启用了Cookie。虽然你不能指望有人启用了Cookie,但我认为这是一个安全的家庭作业假设。如今,如果不启用Cookie,用户必须明确关闭它们

读、写、启用cookie,以便用户名将存储在变量中,然后写入cookie

您有两个未声明的函数。
readCookie
writeCookie
正在被调用,但您尚未在任何地方声明它们。您需要类似以下内容的内容:

function readCookie() {
    //Return the value of the cookie
}


function writeCookie(value) {
    //Write the value to the cookie
}
您可以在此了解有关cookie到底是什么的更多信息:

以及如何读写它们

此外,您的HTML和JavaScript中还有一些语法错误。请务必仔细检查。需要查找的内容:

  • 确保每个花括号(
    {}
    )都有一个匹配的开始/结束括号
  • 确保所有HTML属性值都正确地括在引号中。例如,您的正文的
    onload
    属性似乎缺少引号
其他提示:

不要试图一次构建所有功能。从一个简单的任务开始,然后让它自己工作。例如,从设置/读取cookie开始,不要担心岩石。一旦你让一个功能按照你想要的方式工作,就可以添加更多功能