2010-05-13 4 views
22

Я хочу:Создание куки, если (и только если) оно уже не существует

  1. Проверьте, чтобы увидеть, если печенье с именем «запрос» существует
  2. Если да, то ничего не делать
  3. Если нет, то создать печенья «запрос» со значением 1

Примечание: Я использую JQuery 1.4.2 и jQuery cookie plugin.

Есть ли у кого-нибудь какие-либо предложения относительно того, как я могу это сделать?

+1

Вы пробовали это ??? – Reigel

ответ

49
if($.cookie('query') === null) { 
    $.cookie('query', '1', {expires:7, path:'/'}); 
} 

В качестве альтернативы, вы можете написать функцию-обертку для этого:

jQuery.lazyCookie = function() { 
    if(jQuery.cookie(arguments[0]) !== null) return; 
    jQuery.cookie.apply(this, arguments); 
}; 

Тогда вам нужно только написать в коде клиента:

$.lazyCookie('query', '1', {expires:7, path:'/'}); 
+0

! = To == и скоро примут ваш ответ, поскольку он позволяет мне: P – Sphvn

+2

Я думаю '! =' Должно быть '==': p – Reigel

+0

@Ozaki, это сработало? –

5

это ??

$.cookie('query', '1'); //sets to 1... 
$.cookie('query', null); // delete it... 
$.cookie('query'); //gets the value.... 

if ($.cookie('query') == null){ //Check to see if a cookie with name of "query" exists 
    $.cookie('query', '1'); //If not create a cookie "query" with a value of 1. 
} // If so nothing. 

что еще вы хотите ??

+0

@Ozaki - Я предполагаю, что вы его неправильно поняли. .. то, что я пытаюсь показать, это возможные варианты ... ну, я рад, что вы решили это сейчас ... :) приветствия! – Reigel

6

Как и Jacobs, но я предпочитаю тестировать неопределенные.

if($.cookie('query') == undefined){ 
    $.cookie('query', 1, { expires: 1 }); 
} 
+1

С последним обновлением скрипта 'null' теперь устарел и' undefined' должен использоваться. – Warface

+0

Почему вы говорите, что «null» теперь устарел? Я не смог найти какой-либо вспомогательный материал в этом онлайн-режиме. См. [Здесь] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features). – Rodiwa

Смежные вопросы