クッキーからデータを読み込む


動作ブラウザ 【 IE:3.0  NN:2.0
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows - - × -
Macintosh - - -
UNIX - - - - - - - -
Dreamcast - - - - - - - - - - × × -

ポイント theName = "Age="; theCookie = document.cookie+";"; start = theCookie.indexOf(theName); if (start != -1) { end = theCookie.indexOf(";",start); theData = unescape(theCookie.substring(start+theName.length,end)); }
説  明 クッキーに保存したデータを読み出すにはdocument.cookieから文字列を読み出し、データ名と値を分離します。データ名と値の区切りを検索するにはindexOf()を使い、-1でなくなるまで処理を行います。ただし、基本的に異なるドメイン、ディレクトリパス、異なるファイルでのクッキーの読み込みを行うことはできません。この場合はエラーとなり読み出しに失敗します。
サンプル <html> <head> <title>クッキーからデータを読み込む</title> <script language="JavaScript"><!-- function loadData() { theData = ""; theName = "Age="; theCookie = document.cookie+";"; start = theCookie.indexOf(theName); if (start != -1) { end = theCookie.indexOf(";",start); theData = unescape(theCookie.substring(start+theName.length,end)); } document.myFORM.age.value = theData; } // --></script> </head> <body> <form name="myFORM"> <input type="text" name="age"> <input type="button" value="データ読み込み" onClick="loadData()"> </form> </body> </html>
補足説明 サンプルではデータが保存されていないため正しく動作しません。正しく動作させるには、データ書き出し、保存、消去などは同一ドメイン、ディレクトリパス、同ファイル名にしておく必要があります。domain、pathオプションにより、どの範囲までクッキーが読み込めるかなどを指定することができます。これ以外にsecureオプションもあります。

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA