EzDevInfo.com

js-cookie

A simple, lightweight JavaScript API for handling cookies

Check if a cookie array element exists

How can I check that an array element already exists within cookie?

Here is my code:

var cookieList = function (cookieName) {
    var cookie = Cookies.get(cookieName);
    var items = cookie ? cookie.split(/,/) : new Array();

    return {
        "add": function (val) {
            items.push(val);
            Cookies.set(cookieName, items.join(','), { path: '/' });
        }
    }
}

var list = new cookieList("MyItems");

$('.items').on('click', '.add', function () {
    var imageId = $(this).data("id");
    list.add(JSON.stringify(imageId));
});

Source: (StackOverflow)

Js if is not work in setInterval()

Hello!

I have This in my website:

  var docCookies = {
  getItem: function (sKey) {
  if (!sKey) { return null; }
  return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
 },
 setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {
 if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) {return false; }
var sExpires = "";
if (vEnd) {
  switch (vEnd.constructor) {
    case Number:
      sExpires = vEnd === Infinity ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + vEnd;
      break;
    case String:
      sExpires = "; expires=" + vEnd;
      break;
    case Date:
      sExpires = "; expires=" + vEnd.toUTCString();
      break;
  }
}
document.cookie = encodeURIComponent(sKey) + "=" + encodeURIComponent(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");
return true;
},
removeItem: function (sKey, sPath, sDomain) {
if (!this.hasItem(sKey)) { return false; }
document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "");
return true;
},
hasItem: function (sKey) {
if (!sKey) { return false; }
return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
},
keys: function () {
var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }
return aKeys;
}
};

alert('In next prompt enter "admin".')

var admin = prompt('Name?')

docCookies.setItem('name',admin);

setInterval(function() {if (docCookies.getItem('name')){}else{var a = 2}}, 1000)

But this is not work:

setInterval(function() {if (docCookies.getItem('name')){}else{var a = 2}}, 1000)

Why thi is not work:

setInterval(function() {if (docCookies.getItem('name')){}else{var a = 2}}, 1000)

What in page not work and why? I

<script type="text/javascript">
  var docCookies = {
  getItem: function (sKey) {
    if (!sKey) { return null; }
    return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
  },
  setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {
    if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { return false; }
    var sExpires = "";
    if (vEnd) {
      switch (vEnd.constructor) {
        case Number:
          sExpires = vEnd === Infinity ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + vEnd;
          break;
        case String:
          sExpires = "; expires=" + vEnd;
          break;
        case Date:
          sExpires = "; expires=" + vEnd.toUTCString();
          break;
      }
    }
    document.cookie = encodeURIComponent(sKey) + "=" + encodeURIComponent(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");
    return true;
  },
  removeItem: function (sKey, sPath, sDomain) {
    if (!this.hasItem(sKey)) { return false; }
    document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "");
    return true;
  },
  hasItem: function (sKey) {
    if (!sKey) { return false; }
    return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
  },
  keys: function () {
    var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
    for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }
    return aKeys;
  }
};

alert('In next prompt enter "admin".')

var admin = prompt('Name?')

docCookies.setItem('name',admin);

setInterval(function() {if (docCookies.getItem('name')){}else{var a = 2}}, 1000)


Source: (StackOverflow)

Advertisements

Jquery cookie function not finding null value

I have a button that when clicked should delete a cookie, call a function that collects a value from a textbox and save it as the new cookie value.

The problem I'm having is that after the button is clicked, the function is executing as if there was a value in the cookie.

I've logged the value of the cookie and it's showing null. Why isn't my function finding that the value is null?

//when new player is pressed
$('#BtnPlayAsNew').button().click(function () {
    $.cookie('name', null); //delete cookie

    $('#Result').hide();
    getUsername(); //call function 
});

function getUsername() {
    //get cookie 
    var cookie = $.cookie('name');
    //check value of cookie
    if (cookie == null || cookie == "") {
        $('#controls').hide();
        $('#NewUser').show();
        $('#BtnUser').click(function () {
            name=$('#tbUser').val();
            $.cookie('name', name,{path:'/' });
            $('#NewUser').hide();
            $('#controls').show();
        });
    }else{
        $('#NewUser').hide();
        $('#controls').show();
    }
}

Source: (StackOverflow)