Javascript 使用JS Cookie在x页面视图后显示模式?

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

我试图在我的网站上显示一个引导模式的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 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.