这是假设用户输入他们的名字(使用文本框),一旦他们刷新页面,它将在屏幕上显示他们的名字,但由于某种原因,它永远不会进入getCookie中的if语句。 (虽然它进入了函数get cookie。)
function setCookie() {
alert(fName.value);
var user = fName.value;
alert(user);
var expiry = new Date();
expiry.setTime(expiry.getTime() + (1000 * 60 * 60));
document.cookie = "mydata=" + user + ";" + "expires=" + expiry.toGMTString();
alert();
}
function getCookie() {
alert(document.cookie.indexOf("mydata") >= 0);
if (document.cookie.indexOf("mydata") >= 0) {
alert();
var cookieString = unescape(document.cookie);
var list = cookieString.split("=");
if(list[0] === "myData") {
var data = list[1].split(",");
var fname = list[0];
}
divisionbar.innerHTML = "Welcome Back" + data;
}
}
答案 0 :(得分:0)
您是否在本地测试此代码?如果是这样,我相信您的问题是您的浏览器(很可能是Chrome)不允许创建本地Cookie。请参阅:Javascript fails to create/recognize cookies on Chrome
我在JSFiddle上以略微修改的方式尝试了您的代码,它按预期工作:http://jsfiddle.net/dKjas/
function setCookie(user) {
alert(user);
var expiry = new Date();
expiry.setTime(expiry.getTime() + (1000 * 60 * 60));
document.cookie = "mydata=" + user + ";" + "expires=" + expiry.toUTCString();
alert(document.cookie);
}
function getCookie() {
if (document.cookie.indexOf("mydata") >= 0) {
var cookieString = unescape(document.cookie);
var cookies = cookieString.split(";");
for (var i = 0, len = cookies.length; i < len; i++){
var data = cookies[i].split('=');
if (data[0] === 'mydata') {
// Change divisionbar here.
alert('Name: ' + data[1]);
}
}
}
}
setCookie('foo');
getCookie();
我真诚地建议您不要使用全局变量来访问DOM的值和位,还要为这些函数提供一些更具描述性的名称: - )