モダンブラウザとCookieの保存文字列が異なるIE8とIE9
IE8とIE9で(この2つのブラウザでしか確認していないのだけど)他のモダンブラウザ(ChromeとFirefoxでしか確認していない)と Cookieを保存するときの文字列が異なっていたことがわかったのでメモ。
保存する文字列が異なる、というのはcookie-nameを指定してcookie-valueに何も指定しなかった場合の文字列が異なる。
IE8 / IE9
document.cookie = 'name=';
document.cookie;
// => 'name;'
Chrome / Firefox
document.cookie = 'name=';
document.cookie;
// => 'name=;'
IEではcookie-valueが空だと=
が付加されない。
=
があるものとしてsplitして、cookie-valueが入っているであろう配列の位置にアクセスするとundefinedになる。
document.cookie = 'name=""';
document.cookie;
// => 'name=""';
というふうに""
で囲むとIEでもモダンブラウザと同じ文字列で保存されたので常に""
で囲うと良いのかもしれない。
値を取り出すのが若干面倒にはなるが。