フォーラム@nifty | フォーラム・サークル | サイトマップ | ヘルプ |
掲示板 コラム お役立ち イベント リンク   | FHPGサイトマップ | お問い合わせ |
TOP > お役立ち > JavaScriptのおもちゃ箱 > 訪問回数表示(画像バージョン)  

訪問回数表示(画像バージョン)

原案:一休 氏、ともひろ (2000/06/13 登録)

 このページを見ている人が何回訪問してくれたか回数を表示します。

表示サンプル

ソース記述内容

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<title>訪問回数表示(画像バージョン)</title>
<script type="text/javascript">
<!--

//クッキーのデータを格納
var chk=GetCookie ("visit_num");
//訪問回数
var chk_num;
//名前
var your_name;

//クッキーを書き込む
function SetCookie( name, value ) {
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = ( argc > 2 ) ? argv[2] : null;
    var path        = ( argc > 3 ) ? argv[3] : null;
    var domain      = ( argc > 4 ) ? argv[4] : null;
    var secure      = ( argc > 5 ) ? argv[5] : false;
    var d=new Date();
  if (d.getYear()<2000) d.setYear(eval(d.getYear())+1901); else
    d.setYear(eval(d.getYear())+1);
    document.cookie = name
    + "="
    + escape(value)
    + ((expires == null) ? ("; expires=" + d.toGMTString()) :
    ("; expires=" + expires.toGMTString()))
    + ((path        == null) ? "" : ("; path="    + path))
    + ((domain  == null) ? "" : ("; domain="  + domain))
    + ((secure  == true) ? "; secure=" : "");
}

//クッキー取得のサブルーチン
function GetCookieVal( offset ) {
    var endstr = document.cookie.indexOf( ";", offset);
    if ( endstr == -1 )
        endstr = document.cookie.length;
    return unescape( document.cookie.substring( offset, endstr ));
}

//クッキーの取得
function GetCookie ( name ) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while ( i < clen ) {
        var j = i + alen;
        if ( document.cookie.substring( i, j ) == arg ) return GetCookieVal( j ) ;
        i = document.cookie.indexOf(" ", i ) + 1;
        if( i == 0 ) break;
    }
    return null;
}

//訪問回数+"&-&"+名前の形で分解する。
function BreakCookie(data) {
    var b=data.indexOf("&-&");
    chk_num=data.substring(0,b);
    your_name=data.substring(b+3);
}

//クッキーがなかったら名前を聞く
if(chk==null) {
    your_name=prompt("名前を入力して下さい","名無しの権兵衛");
    chk_num="1";
} else {
    BreakCookie(chk);
    chk_num++;
}

//クッキーに書き込む
SetCookie("visit_num",chk_num+"&-&"+your_name);

// -->
</script>
</head>
<body>
<div style="text-align:center"> 
<script type="text/javascript">
<!--
/*
    document.write("<p>"+your_name+" さん(^^)/<br>");
    本当は上でOKなのだが、
    IEの場合、下のように分割しないとうまく表示されなかった。
*/

function chgimg(arg) {
  var img="";
  //桁数の指定
  var col=5;
  //argが数値なので文字列として変数に代入
  var str= new String(arg);
  //訪問回数をcolで指定した桁数に整える
  if (str.length<col) for (var i=str.length ;i<col;i++) str="0"+str;
  //訪問回数を1文字ずつ画像で呼び出す形にする
  for(var i=1;i<=str.length;i++) {
      n=str.substring(i-1,i);
      img+="<img src=\'"+n+".jpg\' width='15' height='20' alt=\'"+n+"\'>";
  }
  return img;
}

document.write("<p>"+your_name);
document.write(" さん(^^)/<br>");

//訪問回数によってメッセージを分ける
var img_num=chgimg(chk_num);
if(chk_num!="1")
    document.write(img_num+"回目の訪問ありがとうございます。</p>");
    else
    document.write("はじめての訪問ありがとうございます。</p>");

// -->
</script>
</div>
</body>
</html>
個人情報保護ポリシー
Copyright© NIFTY 2006 All Rights Reserved.
Copyright© FHPG 2006 All Rights Reserved.