赤字:JavaScriptの命令や重要なタグ/青字:用途に応じて変更する部分/緑字:変更可能な変数名やユーザー関数名
Counter :
再読込する毎にカウンターが増えます。
Counter : <span id="countnumber"></span> <script type="text/javascript"> counter(); function counter() { var c_name,count; //cookie名 c_name = "cookie_count"; //cookieの読込 count = loadCookie(c_name); if (count == "") { //データがない場合 count = 1; } else { //データがある場合 count++; } //countを表示 document.getElementById("countnumber").innerHTML = count; //cookieの保存 saveCookie(c_name,count,60); } //cookie読込 function loadCookie(c_name) { var s,n,m,c_data; //cookieの読み込み c_data = document.cookie; //cookie名 c_name = c_name + "="; //有効なcookie名を調べる n = c_data.indexOf(c_name,0); if (n > -1) { //cookieのデータ部分を取り出す m = c_data.indexOf(";",n + c_name.length); if (m == -1) m = c_data.length; s = c_data.substring(n + c_name.length,m); //デコード return unescape(s); } else { return ""; } } //cookie保存 function saveCookie(c_name,c_data,c_day) { var n,c_date,c_limit; //有効期限 c_date = new Date(); n = c_date.getTime() + (1000*60*60*24*c_day); c_date.setTime(n); c_limit = c_date.toGMTString(); //cookieの書き出し document.cookie = c_name + "=" + escape(c_data) + "; expires=" + c_limit; } </script>
ページを開くとカウンターが処理され訪問回数を記録して表示します。
ブラウザでリロード(再読込)してカウンターが増えることを確認してください。カウントが1つづつ増えていくはずです。
ユーザー関数を3つに分けて処理を分担させています。
1つめのcounterで、カウントが増える処理を、その中からloadCookieとsaveCookieを呼び出してcookieの読込と保存を行っています。
流れを簡単に見てみましょう。
まず、cookie名を決めて変数c_nameに入れています。
次にcookieを読み込んで、変数countに入れます。その次に、変数countが空なら「1」を、そうでなければ1を足しています。
あとは、画面に変数countを表示し、変数countをcookieに保存しています。
これはcookieを読み込む処理を1つにまとめたものです。
このユーザー関数にcookie名を引数として渡すと、そのcookieを探して中の文字列を返しています。有効なcookieが見つからない場合は、空の文字列を返します。
こちらもcookieを保存する処理を1つにまとめています。
引数としてcookie名、保存する内容(文字列)、期限日数を与えることで、cookieを適切に保存しています。