document.cookie = "書き込むデータ";
とするだけです。参照は、document.cookie
の中からセクション名を伝にデータを抜き出します。サンプルでは、訪問者へのメッセージ表示と訪問者毎のアクセスカウンタで
Cookie を使用しています。このページに入った時いきなりalert
が表示されているはずです。対応状況 |
head部のソース
<head>
<script type="text/JavaScript">
<!--
var n; // アクセス数(グローバル変数)
setDay = new Date(); // 現在の日時を取得
//--------------------------------------------------------------------------
// Cookieを参照する関数(Cookieから指定されたデータを抜きだす)
// 成功した時はnull以外、失敗した時はfalseを返す
//--------------------------------------------------------------------------
function getCookie(theName)
{
theName += "="; // = を追加
theCookie = document.cookie+";"; // 検索時最終項目で-1になるのを防ぐ
start = theCookie.indexOf(theName); // 指定されたセクション名を検索する
if (start != -1)
{
end = theCookie.indexOf(";",start); // データを抜きだす
return unescape(theCookie.substring(start+theName.length,end));
}
return false;
}
//--------------------------------------------------------------------------
// Cookieを設定する関数(Cookieにデータを保存する)
// 成功した時はtrue、失敗した時はfalseを返す
//--------------------------------------------------------------------------
function setCookie(theName,theValue)
{
if ((theName != null) && (theValue != null))
{
expDay = new Date(); // 現在の日時を取得
expDay.setTime(expDay.getTime()+(theDay*1000*60*60*24)); // Cookie期限の設定
expDay = expDay.toGMTString();
document.cookie = theName + "="+escape(theValue)+";expires="+expDay; // データ保存
return true;
}
return false;
}
function getCount()
{
week = 7; // 1週間(=7日間)後を"久しぶり"とする
week = week*1000*60*60*24; // ミリ秒に変換
n = getCookie("count"); // アクセス回数取得
oDay = getCookie("origin"); // 前回アクセス日時取得
oldDate = (new Date(oDay)).getTime(); // ミリ秒に変換
newDate = setDay.getTime();
sec = newDate - oldDate; // 前回と今回の日時の差分
if (!n)
{
if (setCookie("count",2) && setCookie("origin",setDay))
alert("ようこそいらっしゃいました。");
}else{
if (setCookie("count",eval(n)+1) && setCookie("origin",setDay))
{
if (sec >= week) // week以上なら"お久しぶり"
{
if (theDay != -1) // theDayが -1 ならばcookie削除
{
alert("お久しぶりです、ようこそ。");
}else{
alert("Cookieを削除しました。");
}
}else{
if (theDay != -1)
{
alert("また来て頂いて、有難うございます。");
}else{
alert("Cookieを削除しました。");
}
}
}
}
}
//-->
</script>
</head>
<body>
<p>
<script type="text/JavaScript">
<!--
theDay = 30; // Cookie の保存期間を「30日間」とする
getCount();
if (!n)
{
document.write("初めてのアクセスです。");
}else{
document.write(n+"回目のアクセスです。");
}
//-->
</script>
</p>
<p>
<a href="javascript:theDay = -1; getCount();">Cookieを削除する。</a>
</p>
</body>
theDay
を theDay = -1;
とすればできます。theDay
は Cookie の保存期間なので必ず設定して下さい。リロード(更新)すればアクセスカウンタがカウントされます。
表示