我有这个任务来读取、写入、启用 cookie,以便将用户名存储在变量中,然后写入 cookie。我的问题是代码的最后一部分似乎正在工作。但是用户名应该存储到变量中的第一部分不起作用,我可以看到当我运行代码时,前两个警报框没有显示。它应该以“你好,我是你的宠物石头”打开,在我最后一次单击 iRock 后,图像应该变成快乐的 iRock。但这并没有发生。我猜是因为 cookie 没有被读取。有什么建议。链接在这里:http://ciswebs.smc.edu/cis54/tyson_schweidel/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>
让我们来分解一下。
如何启用cookie
至少自 2000 年以来,几乎所有浏览器都默认启用 Cookie。虽然您不能依赖启用了 Cookie 的人,但我认为对于家庭作业来说这是一个安全的假设。如今,饼干not启用后,用户必须明确将其关闭。
读取、写入、启用cookie,以便将用户名存储在变量中,然后写入cookie
您有两个未声明的函数。readCookie
and writeCookie
正在被调用,但您还没有在任何地方声明它们。你需要类似这样的东西:
function readCookie() {
//Return the value of the cookie
}
function writeCookie(value) {
//Write the value to the cookie
}
您可以在此处了解有关 cookie 到底是什么的更多信息:
http://www.quirksmode.org/js/cookies.html
以及如何阅读和编写它们。
此外,您的 HTML 和 JavaScript 中存在一些语法错误。请务必仔细检查。寻找的东西:
- 确保每个大括号 (
{}
) 有一个匹配的开头/结尾。
- 确保所有 HTML 属性值都正确括在引号中。例如,
onload
你身体的属性似乎缺少引号。
附加提示:
不要尝试一次构建所有内容。从一项简单的任务开始,然后让它自行运作。例如,从设置/读取 cookie 开始,而不用担心岩石。一旦您获得一项功能按照您希望的方式工作,就可以添加更多功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)