■クッキーに保存されたデータをすべて読み込む
◆手順1【スクリプトの実行】
-----次の行から(copy)-----
<a href="javascript://" onclick="read_theCookie_Exs()">クッキーを読み込む</a>
-----上の行まで(copy)-----
◆手順2【javascript】
-----次の行から(copy)-----
function read_theCookie_Exs() {
theCookie_Value=unescape(document.cookie);
alert("cookieに保存されているクッキーは["+ theCookie_Value + "]です。");
}
-----上の行まで(copy)-----
◆クッキーの読み込み形式
※ここでクッキーをすべて読み込んだときダイアログに表示される形式は
cookie名=データ内容;cookie名=データ内容
となっており、「cookie名=データ内容」が「;」記号で連結されています。
webStudio_cookie_00=これはweb工房です/abcdefghijk; webStudio_cookie_99=2つ目のデータです/lmnopqr
※最後に「;」はついていないことに注意して下さい。cookie名毎に読み出す場合はクッキーの最後尾に「;」を付加して処理を行います。
■指定したデータのみ読み込む
◆手順1【スクリプトの実行】
※引数として「読み込むcookie名」を渡します
-----次の行から(copy)-----
<a href="javascript://" onclick="read_theCookie_Exs2('webStudio_cookie_00')">webStudio_cookie_00を読み込む</a>
-----上の行まで(copy)-----
◆手順2【javascript】
-----次の行から(copy)-----
function read_theCookie_Exs2(theName) {
theCookie_Value=""; //クッキーの内容を宣言
theCookie=document.cookie + ";"; //クッキーの最後尾に ; 記号を付加
Cookie_start=theCookie.indexOf(theName,0); //cookie名(theName)があるかどうか検索
//保存されたクッキーに指定されたcookie名(theName)があった場合の措置
if (Cookie_start!=-1) {
Cookie_end=theCookie.indexOf(";", Cookie_start);
//Cookie_startを開始地点として次の「;」(クッキー内容の最後尾)の位置検索
theCookie_Value=unescape(theCookie.substring(Cookie_start + theName.length +1, Cookie_end));
//theCookieから指定範囲の切り出しとデコード
}
if (theCookie_Value=="") {
alert("指定のデータ名[" + theName + "]はcookieに書き込まれていません。");
} else if (theCookie_Value==";") {
alert("指定のデータ名[" + theName + "]はcookieに存在しますがデータはすでに消去されています。");
} else {
alert("指定されたデータ名[" + theName + "]の値は["+ theCookie_Value + "]です。");
}
}
-----上の行まで(copy)-----
◆クッキーの最後尾に「;」を付加
※theCookie=document.cookie + ";";
※クッキーをすべて表示したときの解説を参照して下さい。
◆クッキー内の指定文字を検索
※関数indexOf(theName)
※theCookie.indexOf(theName,0);でクッキーtheCookieの先頭(0文字目)からtheNameが含まれるかどうか調べます。戻り値は検索開始位置から検索された文字の位置です。見つからない場合は-1を返します。,0 は省略可能です。
※Cookie_start=theCookie.indexOf(theName,0);で、Cookie_start=クッキーtheCookie内における指定されたcookie名のある位置となります。
※Cookie_end=theCookie.indexOf(";", Cookie_start);では、Cookie_startを開始位置として次の「;」記号のある位置(すなわちデータ内容の最後尾)を検索します。
◆ASCII形式を文字にデコード
※関数unescape()
※unescape(***)で、エンコードされて保存されているデータ内容をデコードして取り出します。
◆文字列から指定された範囲を切り出す
※関数substring(開始位置,終了位置)
※theCookie.substring(Cookie_start + theName.length +1, Cookie_end)で、クッキーtheCookieから [Cookie_start + theName.length +1 ] 〜 [Cookie_end]の範囲を切り出します。
※[Cookie_start + theName.length +1]とはデータ内容の次の位置、です。
◆判定条件
※theCookie_Value=unescape(theCookie.substring(Cookie_start + theName.length +1, Cookie_end));の戻り値
theCookie_Value==""---該当するcookie名がない
theCookie_Value==";"---該当するcookie名はあるがデータ内容が消去されている
となります。
|