我一直致力于一个项目,在项目中,我决定制作一个移动版本的网站。
我想要做的是暂时设置一个cookie(20分钟)“禁用”页面加载时将会查看的欢迎消息。
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);
}
曲奇:
// 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;
}
OnLoad功能:
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);
}
}
感谢任何帮助。
答案 0 :(得分:0)
地址栏中的网址是什么样的?如果它以file://
开头,那就是问题所在。您需要运行本地服务器(因此URL变为例如http://localhost:8000/
)才能正确测试您的网站。
更新:问题可能是您正在使用String.prototype.contains
。它已在规范中重命名为String.prototype.includes
,只有Firefox仍支持旧表单。使用a polyfill,或使用.indexOf()
和> -1
代替(这种方式适用于所有浏览器,包括较旧的浏览器)。
P.S。既然你正在使用jQuery,并且为了更容易使用cookie,为什么不使用the jQuery cookie plugin?