cookie

このエントリーをはてなブックマークに追加

document.cookieはJavaScriptでcookieを利用する為のプロパティです。このプロパティを利用しCookieへの書き込みとCookieの内容の取得が可能です。

Cookieへの書き込み

Cookieへの書き込みは次のように書式で行います。

document.cookie = "Cookieへ保存する設定";

Cookieへ保存する設定は次のようにkey=valueで記述を行います。

var myCookie = "name=WebCreativePark";
document.cookie = myCookie;

クッキーの値に、コンマ、セミコロン、ホワイトスペースなどを含めることができませんのでencodeURIComponent()を利用して以下のように指定するのがよいでしょう。

var myCookieVal = "WebCreativePark";
document.cookie = "name="+encodeURIComponent(myCookieVal);

オプションとして以下のような値が指定できます。

path Cookieの有効範囲のパス(/や/bar/)。なにも指定がなければ現在のパスが有効範囲になります。
domain Cookieの有効範囲のドメイン(www.bar.comやsub.bar.com)、すべてのサブドメインで有効にしたい場合は「.bar.com」のように指定します。なにも指定がなければ現在のドメインが有効範囲になります。
max-age Cookieの有効期限の秒数。1ヶ月なら2592000(60*60*24*30)。
expires Cookieの有効期限の日時。日時はDate.toUTCString()などで利用されるUTC日時を利用します。
secure https通信のときのみcookieに書き込みを行います。trueかnullを指定します

オプションに関しては以下のように;区切りで指定を行います。

var myCookie = "name=WebCreativePark;path=/;domain=.bar.com;max-age=2592000";
document.cookie = myCookie;

なお、オプションで有効期限を指定しない場合はブラウザを閉じた時点でCookieの情報は破棄されます。

Cookieの内容の取得

Cookieの内容はdocument.cookie内にセミコロン(;)区切りで格納されています。

key1=val1;key2=val2;....

特定のkeyのCookieを取得したい場合などは以下のような関数を用意しておくと便利です。

function getCookie (key){
	var cookie,cookies = document.cookie.split(";");
	for(var i = 0;i<cookies.length;i++){
		cookie = cookies[i].split("=");
		if(cookie[0]===key){
			return decodeURIComponent(cookie[0]);
		}
	}
}

jQuery Cookieなどのプラグインを利用しても簡単にCookieの値の取得が可能です。

なお、Cookieが利用できるかどうかはnavigator.cookieEnabledで取得可能です。

登録日 : 2013年09月26日 最終更新日 : 2014年6月3日

同じカテゴリー(Document)のエントリー

検索

スポンサードリンク

バージョン

リファレンス