Cookie 仅在 Firefox 中有效
Cookies only working in Firefox
我一直在做一个项目,在项目中,我决定做一个手机版的网站。
我想做的是设置一个临时(20 分钟)"disables" 页面加载时将显示的欢迎消息的 cookie。
cookie 的问题是它在 Chrome 或 Opera 上不起作用,但在 Firefox 上起作用。
我不知道是什么问题。有人可以指出我正确的方向吗?我是网络开发的新手。
代码如下:
欢迎功能:
function welcome1 () {
$('.message').each(function(i) {
$(this).delay((i++) * 2000).fadeTo(700, 1);
$(this).delay(1400).fadeOut(300);
}),
setTimeout(function() {
$('.solar-body').each(function(i) {
$(this).delay((i++) * 200).fadeTo(400, 1);
})
}, 5000);
}
Cookie:
// c_name = cookie name
// c_value = cookie value
// ex_min = expiration in minutes
function setCookie(c_name, c_value, ex_min) {
var d = new Date();
d.setTime(d.getTime() + (ex_min * 60 * 1000));
var expires = "expires="+d.toUTCString();
document.cookie = c_name + "=" + c_value + "; " + expires;
}
加载函数:
function welcomeMessage() {
var lastVisitedCookieName = 'last-visited';
if (!document.cookie.contains(lastVisitedCookieName)) {
welcome1();
setCookie(lastVisitedCookieName, "1", 20);
}
else if (document.cookie.contains(lastVisitedCookieName)) {
setTimeout(function() {
$('.solar-body').each(function(i) {
$(this).delay((i++) * 200).fadeTo(400, 1);
})
}, 500);
}
}
感谢任何帮助。
地址栏中的 URL 是什么样子的?如果它以 file://
开头,那就是问题所在。您需要 运行 本地服务器(因此 URL 变为 http://localhost:8000/
)以正确测试您的网站。
更新: 问题可能是您正在使用 String.prototype.contains
。它在规范中已重命名为 String.prototype.includes
,只有 Firefox 仍然支持旧形式。使用 a polyfill,或使用 .indexOf()
和 > -1
(这种方式适用于所有浏览器,包括较旧的浏览器)。
P.S。既然你一直在使用 jQuery,并且为了更容易使用 cookie,为什么不使用 the jQuery cookie plugin?
我一直在做一个项目,在项目中,我决定做一个手机版的网站。
我想做的是设置一个临时(20 分钟)"disables" 页面加载时将显示的欢迎消息的 cookie。
cookie 的问题是它在 Chrome 或 Opera 上不起作用,但在 Firefox 上起作用。
我不知道是什么问题。有人可以指出我正确的方向吗?我是网络开发的新手。
代码如下:
欢迎功能:
function welcome1 () {
$('.message').each(function(i) {
$(this).delay((i++) * 2000).fadeTo(700, 1);
$(this).delay(1400).fadeOut(300);
}),
setTimeout(function() {
$('.solar-body').each(function(i) {
$(this).delay((i++) * 200).fadeTo(400, 1);
})
}, 5000);
}
Cookie:
// c_name = cookie name
// c_value = cookie value
// ex_min = expiration in minutes
function setCookie(c_name, c_value, ex_min) {
var d = new Date();
d.setTime(d.getTime() + (ex_min * 60 * 1000));
var expires = "expires="+d.toUTCString();
document.cookie = c_name + "=" + c_value + "; " + expires;
}
加载函数:
function welcomeMessage() {
var lastVisitedCookieName = 'last-visited';
if (!document.cookie.contains(lastVisitedCookieName)) {
welcome1();
setCookie(lastVisitedCookieName, "1", 20);
}
else if (document.cookie.contains(lastVisitedCookieName)) {
setTimeout(function() {
$('.solar-body').each(function(i) {
$(this).delay((i++) * 200).fadeTo(400, 1);
})
}, 500);
}
}
感谢任何帮助。
地址栏中的 URL 是什么样子的?如果它以 file://
开头,那就是问题所在。您需要 运行 本地服务器(因此 URL 变为 http://localhost:8000/
)以正确测试您的网站。
更新: 问题可能是您正在使用 String.prototype.contains
。它在规范中已重命名为 String.prototype.includes
,只有 Firefox 仍然支持旧形式。使用 a polyfill,或使用 .indexOf()
和 > -1
(这种方式适用于所有浏览器,包括较旧的浏览器)。
P.S。既然你一直在使用 jQuery,并且为了更容易使用 cookie,为什么不使用 the jQuery cookie plugin?