以下HTML文件用于设置cookie,然后在下次加载文件时找到cookie。它适用于浏览器FireFox,但不适用于Chrome。这是在Windows 10计算机上完成的。
我的一个朋友在他的Mac上为我累了,这就是他发现的:
点击关闭,然后在Chrome中再次显示文字中没有“用户名”。在Safari中,消息是“getCookie withusername =”,由破折号分隔的4个5hex数字“helpSession = 914438-1284431863267”。
点击关闭按钮,它会输入一个正确的方框来输入名称,并在更大的方框右侧显示一个“取消”可点击区域,然后是一个OK可点击区域。
输入“测试”并点击“确定”。 Chrome报告说它阻止了Cookie。 Safari报告错误,但下次第二条消息是“getCookie withusername = test; helpSession = 914438-1284431863267”。第三个OK给了“欢迎回来测试”
我想知道我做错了什么。
鲍勃
以下是代码:
<!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();
alert( "expires=" + expires );
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
var name = cname + "=";
alert( "getCookie called" + document.cookie );
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.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 "";
}
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>