Javascript 使用JS Cookie在x页面视图后显示模式?
我试图在我的网站上显示一个引导模式的avec 3页面,并用JS Cookie插件找到问题的实际解决方案 我尝试了此代码,但不起作用:Javascript 使用JS Cookie在x页面视图后显示模式?,javascript,jquery,cookies,js-cookie,Javascript,Jquery,Cookies,Js Cookie,我试图在我的网站上显示一个引导模式的avec 3页面,并用JS Cookie插件找到问题的实际解决方案 我尝试了此代码,但不起作用: $(document).ready(function () { // create cookie var visited = Cookies('visited'); // visited = 0 if (visited >= 3) { // open fancybox after 3 secs on 4th visit
$(document).ready(function () {
// create cookie
var visited = Cookies('visited'); // visited = 0
if (visited >= 3) {
// open fancybox after 3 secs on 4th visit or further on the same day
$('#my_modal').modal('show');
} else {
visited++; // increase counter of visits
// set new cookie value to match visits
Cookies('visited', visited, {
expires: 1 // expires after one day
});
return false;
}
}); // ready
上面的代码应该做什么:在重新加载4页后提示模式,什么不起作用:我重新加载了页面,但是模式没有出现 以下是我的cookie状态(在chrome上): 这是一个代码示例,实际用于在首次访问网站时显示模式:
$(document).ready(function() {
if (Cookies('pop_welcome') == null) {
$('#my_modal').modal('show');
Cookies('pop_welcome', '31', { expires: 31 });
}
});
**--解决方案--**
你可以找到解决办法
守则:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
var visited = readCookie('tester') || 1;
if (visited > 2) {
$('#my_modal').modal('show');
} else {
visited++;
createCookie('tester', visited, 1);
}
函数createCookie(名称、值、天数){
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
var expires=“;expires=“+date.togmString();
}
else var expires=“”;
document.cookie=name+“=”+value+expires+“path=/”;
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i2){
$('my'u model')。model('show');
}否则{
访问++;
createCookie(“测试人员”,已访问,1);
}
你能帮帮我吗? 谢谢 jQuery插件在这里
您可以使用这三个简单的函数来执行cookie任务,无需第三方库
函数createCookie(名称、值、天数){
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
var expires=“;expires=“+date.togmString();
}
else var expires=“”;
document.cookie=name+“=”+value+expires+“path=/”;
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i }
检查控制台是否有错误。请注意,Cookies
不是一种标准方法,因此除非您自己添加,否则它将导致错误谢谢您的回答。此代码不会在我的chrome控制台上提示任何错误。。。我用Cookies方法编辑了我的问题,检查$('my#u modal').modal('show')
正在从控制台打开模式,Cookies('visited')
返回什么?在注释中显示它返回0
。对控制台做一些日志记录,看看有什么问题happening@greedchikaracookie未打开模式。cookie存在,但没有做任何事情:'(回答时不解释更改了什么以及为什么几乎可用。我已经在我的系统上对其进行了测试,确保添加了正确的jquery cookie插件。I@NaruKeer,JqueryCookie插件已被弃用,我使用了他的替代者JSCookie当第一次加载页面时,cookie返回NaN值来处理此添加(typeof visited=='undefined'){var visited=0;}就在if条件之前,正如您正在执行visited++一样,因此此变量应该具有整数值。
$(document).ready(function() {
// create cookie
var visited = $.cookie('visited'); // visited = 0
if (visited >= 3) {
setTimeout(function() {
$('#my_modal').modal('show'); //make sure model is already created with id my_model
}, 1000);
} else {
visited++; // increase counter of visits
// set new cookie value to match visits
$.cookie('visited', visited, {
expires: 1 // expires after one day
});
return false;
}
});
Make sure all dependent js are included.