Cookieの読み書き
- document.cookieで取り出されるのは、「変数1=値; 変数2=値; ...」なので、値の取り出しは自分で書かないと駄目
- ほんとは値のescapeがいる
読込み
myCookie=document.cookie + ";"; p1=myCookie.indexOf("printername"); p2=myCookie.indexOf("=",p1); p3=myCookie.indexOf(";",p1); if(p2-1) { cookiePrinter=myCookie.substring(p2+1,p3); }
書込み
- 有効期限を7日にした場合
- expiresを書かないとメモリのみでディスクに保存されない
xDay=new Date(); xDay.setTime(xDay.getTime() + (7*24*60*60*1000)); tmp="printername=" + document.form1.hoge.value + "; expires=" + xDay.toGMTString(); document.cookie=tmp;
保存されたCookieの中身
- 保存場所
- C:\Documents and Settings\ユーザー名\Cookies
- ファイル名
- ユーザー名@pathの最後[数字].txt
- pathの最後は、http://felwithe/cookie/a.htmで記録したなら、cookieとなる
- http://felwithe/a.htmで記録したなら、felwitheとなる(ホスト名ってこと)
- 数字はよくわからん。1と2が記録するたび入れ替わる。でも4とかいうのもある。ホストが違うけどpathの最後が重複した時のためみたい。
- ユーザー名@pathの最後[数字].txt
- ファイルの中身
- 1行目が変数名、2行目がその値
- 3行目がpath
- http://felwithe/cookie/a.htmlなら、felwithe/cookie/となる
- 以下、*までなにか不明。期限とかだろう
- 複数の変数がある時は、以上を繰り返し
- 期限は変数毎ってこと
参照できる範囲
- 同一ホスト内の上位のpathのみ
- http://felwithe/cookie/a.htmから参照できるのは、felwithe/、felwithe/cookie/
- felwithe/hoge/ のような別ディレクトリは参照できない