web-dev-qa-db-ja.com

Cookieがまだ存在しない場合(そして存在する場合のみ)に作成する

やりたいこと:

  1. 「query」という名前のCookieが存在するかどうかを確認します
  2. はいの場合、何もしない
  3. いいえの場合、値が1のCookie「クエリ」を作成します

注:私はjQuery 1.4.2と jQuery cookie plugin を使用しています。

誰か私がこれを行う方法について何か提案はありますか?

22
Sphvn
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:'/'});
49
Jacob Relkin

この??

$.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.

これ以上何が欲しいですか?

6
Reigel

ジェイコブスの答えに似ていますが、私は未定義をテストすることを好みます。

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