JavaScriptでcookie取得 その2
まず下記のようにcookieを保存する。
document.cookie = 'hoge=piyo; path=/'; document.cookie = 'foo=; path=/';
GetCookie('hoge'); GetCookie('foo'); function GetCookie(name) { var regexp = new RegExp('; ' + name + '=([^;]*);'); var match = ('; ' + document.cookie + ';').match(regexp); if (match) { alert(name + '=' + match[1]); } else { alert(name+'に一致するcookieが見つかりませんでした'); } }
hoge=piyo foo=
hoge=piyo fooに一致するcookieが見つかりませんでした
IEはなぜ?? となったので調べてみたところ、どうもIEでは、cookie保存時に値を無しにすると
foo
とだけ保存される仕様らしい。
GetCookie('hoge'); GetCookie('foo'); function GetCookie(name) { var regexp = new RegExp('; ' + name + '(=([^;]*))?;'); // ←ここを変更 var match = ('; ' + document.cookie + ';').match(regexp); if (match) { alert(name + '=' + match[2]); } else { alert(name+'に一致するcookieが見つかりませんでした'); } }
hoge=piyo foo=
となり、対応可能。