札幌Web制作のシンクグラフィカ

Javascriptのdocument.cookieのpath

Javascriptでcookieをいぢることはよくありますよね。document.cookieですね。それのpathという部分で、ページ毎やカテゴリ毎に有効範囲を設定するときの注意点についてのお話です。

2008-12-29 11:47:40

メールフォームプロ2.0のレジューム機能を改善すべくdocument.cookieで四苦八苦しておりまして、Safari、Firefox、Chromeではちゃんと動くのにIE6とIE7では動かないという事態に直面した際の話です。

端的に申しますとdocument.cookieのpathはIEに関してはフォルダ単位でしか動きません。
そのほかのモダンブラウザではちゃんと動きます。ほとほとIEには困ったものです。

なので、location.pathnameを直接pathに通すとcookieが書き込まれないという事態に陥るため、
var current_dir = location.pathname;
var current_dirs = new Array();
current_dirs = current_dir.split("/");
if(current_dirs[current_dirs.length-1] != ""){
current_dirs[current_dirs.length-1] = "";
current_dir = current_dirs.join("/");
}
こういう処理をひとつ追加する必要があると思いますよ。
どちらにしてもファイル毎の指定はIEではできないということで・・・。