アクセス・カウンタのツールチップについて

このQ&Aのポイント
  • アクセス・カウンタのツールチップを表示する方法と改行する方法、クリックでの別ページへの移動方法について説明します。
  • アクセス・カウンタのツールチップの表示方法、改行方法、クリックでの別ページへの移動方法について詳しく解説します。
  • アクセス・カウンタのツールチップの設定方法、改行方法、クリックでの別ページへのリンク方法についてご説明します。
回答を見る
  • ベストアンサー

アクセス・カウンタのツールチップについて

今、アクセス・カウンタを自作して HTML ソースに埋め込もうとしています。 最初はテキストタイプ、次にグラフィックタイプを作成する予定ですが 作るにあたってツールチップを出せるように考えています。 カウンタの仕様は (1)テキスト、グラフィック共に5桁の累計カウンタを表示 (2)カウンタの上にマウスを乗せると今日の訪問者数、昨日の訪問者数を表示 (3)クリックするとアクセス解析のページに移動 という仕組みを考えています。 質問内容: (1)カウンタの上にマウスを乗せたときにツールチップを出す方法 (2)ツールチップで表示する文字列で改行する方法(有るのならば知りたい) (3)クリップしたときに別ページに(リンク)移動する方法 上記の3つはどのように作り上げればよろしいでしょうか? 補足情報: ・私の現時点でのスキルは Perl-CGI を HTML ソースに埋め込める程度です。  別の質問より SSI の #exec 以外で CGI を動かす方法が分かりました。  (ちなみに http://oshiete1.goo.ne.jp/qa3364805.html です) ・HTML、CSS、JavaScript、Perl-CGI、SSI の基本を少々分かる程度です。  Perl-GCI でタグを document.write() で標準出力すれば出来ますかね。 グラフィック・カウンタのイメージ(画像)の場合どのようにすべきか 一番お聞きしたいです。 それでは回答をお待ちしています。 よろしくお願いいたします。

  • CGI
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.3

> ><script type="text/javascript" src="counter_js.cgi"></script> > の行で CGI が実行され > その CGI の標準出力に JavaScript で HTML タグを出力する記述をする。 > その後、出力された JavaScript のスクリプトがブラウザで実行されて > ここで仕様通りのカウンタ表示、ツールチップなどの表示が行われる。 > という解釈であっていますか? はい、時系列はそれであっています。 > つまり CGI は2つ用意して > 『counter_js.cgi』は JavaScript で HTML タグを出力する処理のみ。 > 『counter.cgi』で実際のアクセス・カウンタの処理と画像を出力する処理。 > という仕組みになるのでしょうか? 私は、counter_js.cgiでアクセスカウントの処理もまかなうつもりでANo.2の回答をしました。 そうでないと、画像出力(今回の例ではcounter.cgiの役割。名前と役割があってないけど。)が 必要ないテキストカウンタで アクセス数をカウントすることができなくなってしまうので。 > 最初は1つの CGI で作り上げるのかと思いました。 > 2つ必要なのですね。 counter_js.cgiが出力したJavaScriptだけでは画像を作成できませんから 何らかの方法でカウンタ画像を作成する必要があります。 今回の場合は、画像作成を別のCGIスクリプトに行わせる方針にしたため2つ必要になってます。 (引数によって動作モードを変えるようにすれば1つのCGIスクリプトにまとめられますが、 今回の場合は分けた方が素直な気がします。) またJavaScriptでは画像を作成できないと書きましたが 以下のような感じで数字(0~9)の画像を並べてカウンタを表現することはできるので、 そのような実装をするなら画像生成CGIは必要なくなりますね。  <img src="0.gif"><img src="1.gif"><img src="2.gif"><img src="3.gif"> まあ、やり方は1つではありませんからいろいろ試してみるのもおもしろいと思いますよ。 もし時間があるなら、ソースコードが公開されているアクセスカウンタを探して読めば 有用な情報を得られるかもしれません。 # ここでの回答は、私ならこうするというものなので一般的かどうかまでは分かりませんしね。

Oh-Orange
質問者

お礼

回答有り難うございます。 この回答のお陰ですべてが理解できました。 最初アクセス・カウンタを作ろうとしたときに <img src="0.gif"><img src="1.gif"><img src="2.gif"><img src="3.gif"> を考えていました。でも CGI で画像を結合して渡せることをネット上で ダウンロード出来るサンプルより知りました。 >まあ、やり方は1つではありませんからいろいろ試してみるのもおもしろいと思いますよ。 >もし時間があるなら、ソースコードが公開されているアクセスカウンタを探して読めば >有用な情報を得られるかもしれません。 ># ここでの回答は、私ならこうするというものなので一般的かどうかまでは分かりませんしね。 はい。 多数のサンプルを覗きならが CGI のテストをしている段階です。 CGI にパラメータを渡せば1つでカウント処理、画像出力が可能ですね。 これから色々と試してみます。 3回の回答有り難うございました。 この質問はこれで締め切ります。

その他の回答 (2)

  • Werner
  • ベストアンサー率53% (395/735)
回答No.2

> (1)HTML ページが開かれる時に window.onload の関数で仕様どおりのタグを出力 > (2)ブラウザが出力されたタグにきたときにその記述より CGI でカウンタを表示 > この動作であっていますか? 最後の記述は、 (1) CGIがJavaScriptを出力 (2) (1)で出力されたJavaScriptがwindow.onloadで所望のHTML文を出力 のつもりで書きました。 > タグを JavaScript で出力する前に CGI を先に実行する方法はありますか? 上に書いたように「HTML(タグ)を出力するJavaScript」を出力するCGIスクリプトを書きます。 HTMLには  <script type="text/javascript" src="counter_js.cgi"></script> などと書き、counter_js.cgiに(ANo.1の最後のコードのような)JavaScriptを出力させます。 (当然、カウントもcounter_js.cgiでやります。) もし、  <img src="counter.cgi" alt="access counter" title="今日の訪問者数XXXXX、昨日の訪問者数YYYYY"> これを出力したときにcounter.cgiの出力画像がずれることを心配しているのなら、  <img src="counter.cgi?no=ZZZZZ"> のようにcgiの引数でカウンタの数値を渡し counter.cgiはただ受け取った数値を画像化するだけの機能にする手もあります。 (この場合counter.cgiにもはやカウンタの機能はありませんが。)

Oh-Orange
質問者

お礼

再回答有り難うございます。 ><script type="text/javascript" src="counter_js.cgi"></script> の行で CGI が実行され その CGI の標準出力に JavaScript で HTML タグを出力する記述をする。 その後、出力された JavaScript のスクリプトがブラウザで実行されて ここで仕様通りのカウンタ表示、ツールチップなどの表示が行われる。 という解釈であっていますか? つまり CGI は2つ用意して 『counter_js.cgi』は JavaScript で HTML タグを出力する処理のみ。 『counter.cgi』で実際のアクセス・カウンタの処理と画像を出力する処理。 という仕組みになるのでしょうか? 最初は1つの CGI で作り上げるのかと思いました。 2つ必要なのですね。 今度の解釈はあっているでしょうか? 確認の為にまた回答をお願いします。 それでは、お待ちし待ています。

  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

> 質問内容: > (1)カウンタの上にマウスを乗せたときにツールチップを出す方法 > (2)ツールチップで表示する文字列で改行する方法(有るのならば知りたい) > (3)クリップしたときに別ページに(リンク)移動する方法 > 上記の3つはどのように作り上げればよろしいでしょうか? カウントすることはとりあえず忘れて、 HTML(場合によっては+JavaScript)でそれらを実現する方法は分かりますか? 分かるなら、そのHTMLをカウンタの数値だけは書き換えて出力するような CGIスクリプトなりを書けば良いと言うことになります。 > (1)カウンタの上にマウスを乗せたときにツールチップを出す方法 例えばHTMLのtitle属性を使えば、 マウスでポイントしたときに説明文を出せます。 テキストなら  <span title="今日の訪問者数XXXXX、昨日の訪問者数YYYYY">ZZZZZ</span> 画像なら  <img src="counter.cgi" alt="access counter" title="今日の訪問者数XXXXX、昨日の訪問者数YYYYY"> もしくはJavaScriptとCSSを駆使して実現することも可能だと思いますが、一から作るのはちょっと面倒だと思います。 # 興味あるなら"JavaScript ツールチップ"とかで検索。 > (2)ツールチップで表示する文字列で改行する方法(有るのならば知りたい) title属性を使う場合はできないと考えておいた方が無難そうです。 # 詳しいことは"title属性 改行"で検索。 > (3)クリップしたときに別ページに(リンク)移動する方法 HTMLのアンカー要素でよいと思います。 (JavaScriptのlocation.hrefでも良いけど、敢えて使う必要もなさそう。)  <a href="./analyzer.html" title="今日の訪問者数XXXXX、昨日の訪問者数YYYYY">ZZZZZ</a> とか  <a href="./analyzer.html"><img src="counter.cgi" alt="access counter" title="今日の訪問者数XXXXX、昨日の訪問者数YYYYY"></a> 実際にはXXXXXやZZZZZの値が変化しますから、 その部分をPerl/CGIで生成します。 JavaScriptをCGIから出力する場合は以下のような感じでしょうか。 (innerHTMLは私の好み。document.writeでやってももちろんかまわない。) SSIを使うならあまり悩むところはないかな。 ----------------------------------------------------------------- <html><head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> /*実際は、このJavaScriptを外部ファイルにしてCGIに出力させる*/ window.onload = function(){  var counter_element = document.getElementById("counter");  if(counter_element){   counter_element.innerHTML = '<a href="./analyzer.html" title="今日の訪問者数XXXXX、昨日の訪問者数YYYYY">ZZZZZ</span>';  } } </script> </head><body> <div id="counter"></div> </body></html>

Oh-Orange
質問者

お礼

御礼が遅くなりました。 回答有り難うございます。 >HTML(場合によっては+JavaScript)でそれらを実現する方法は分かりますか? なんとなく分かります。 >(1)カウンタの上にマウスを乗せたときにツールチップを出す方法 HTMLの title 属性でツールチップは出せるのですね。 alt 属性は知っていましたが IMG タグでしか使えなかったです。 title 属性なら SPAN タグでも使えますね。 >(2)ツールチップで表示する文字列で改行する方法(有るのならば知りたい) 検索した結果は IE ブラウザだけルールを無視して改行できるようです。 この辺は任意位置での改行は行わないようにします。というより無理ですね。 了解。 >(3)クリップしたときに別ページに(リンク)移動する方法 ソースを読み次のように解釈しましたがあっていますか? (1)HTML ページが開かれる時に window.onload の関数で仕様どおりのタグを出力 (2)ブラウザが出力されたタグにきたときにその記述より CGI でカウンタを表示 この動作であっていますか? この動作の場合『今日の訪問者数』が CGI が実行されるよりも前で JavaScript として タグを出力するため CGI で『今日の訪問者数』を +1 するとタイミングにより1つ前の 数が表示されてしまいますね。 タグを JavaScript で出力する前に CGI を先に実行する方法はありますか? JavaScript の onload 見たいな命令で CGI を真っ先に実行する方法が あるのか、無理なのか分かりましたら教えて下さい。 無理ならタイミングがずれますがタグ出力後に CGI で『今日の訪問者数』を +1 にして使います。

関連するQ&A

  • カウンター

    CGI(Perl)を勉強中の初心者です。 自作のグラフィックカウンターのCGIをHTMLに貼り付けると、 カウンターは表示されるのですが、 HTMLでカウンターより下に配置してある画像が表示されません。(テキストはOK) CGIを貼るタグは<IMG src=".......cgi>としてあるのですが、 調べてみたところ、このタグ内でwidthとheightの属性を設定しないと このタグ以下のHTMLが表示されないことがあるとのことで、 属性も設定したのですが、やはり表示されません。 CGIスクリプトそのものに問題があるのでしょうか。 よろしくお願いいたします。

    • 締切済み
    • CGI
  • カウンターcgiをHTMLに表示したい

    perlの入門書を見て簡単なカウンターのcgiを作りました。gif画像を10枚使ってテキスト数字のかわりに表示させるものです。 サーバーにアップして動作確認もしました。ちゃんと動いています。 このカウンターをHP上のHTMLのページに表示させたいのですが方法が分かりません。 <img src="カウンターcgiのURL"> と書いたのですが、ダメでした。 画像ではないのでimgタグだとダメなのでしょうか。 どうすればHTMLに表示できるのか教えて下さい。 関係があるか分かりませんが、SSIは使えます。

    • ベストアンサー
    • Perl
  • アクセスカウンタがうまく動作しない。

    自作cgiでアクセスカウンタを作成しました。 作成当初はcgi呼び出しとしてSSIの<!--#include virtual="~counter.cgi" -->を使用してそのときは何の問題もなかったのですが、サーバーの都合でSSIをとりやめて<IMG>タグを使用せざるを得なくなってしまいました。 やむを得なくHTML側のSSIの部分をそのまま<IMG="~">に書き直したのですが、これがうまく動きません。 具体的にいいますと、カウンタの値はページには反映させたくないので透過gifをよみこませることにして、HTML内のカウンタの<IMG>タグは一つだけにしてあります。その結果が、訪問一回めとブラウザの更新をしたときだけにしかカウンタが動きません。ブラウザのキャッシュに関係しているのかもしれないと思い、<meta>タグにキャッシュしないように入れてみたのですが、結果が変わりません。 動作環境はwin98 IE5.5とmac9.2 IE5.2で確認しています。 おわかりの方ご教授よろしくお願いします。

    • 締切済み
    • CGI
  • CGIにSSIカウンタをつけたい

    掲示板や日記帳などのCGIに、別途ダウンロードしたSSIのテキストカウンタを表示させようとしたところ、ローカル・Web共に表示されませんでした。 表示する為の記述は「<!--#include virtual="仮想パス"-->」で、HTMLファイルに記述した場合は問題なく表示・動作しました。 HTMLファイルで表示・動作しましたし、CGI・SSI・「.htaccess」ファイルなどの設定はおそらく問題ありません。 SSIのテキストカウンタは「The Room」というサイトの「Text Day Counter Ver.1.10 SSI版」を使用しています。 CGIは「掲示板や日記帳など」と言いましたが、まだ検討段階で特定のCGIはなく、色々なCGIで試しています。 ※特定のものだけではなく、テキストカウンタを表示したいと思うCGIにつけたいのです。 CGIの記述は (1) print "<!--#include virtual=\"仮想パス\"-->\n" ; (2) print '<!--#include virtual="仮想パス"-->\n' ; (3) print "<!--#include virtual='仮想パス'-->\n" ; (4) print <<"EOM"; <!--#include virtual="仮想パス"--> EOM と4通り試しましたが、どれも動作しませんでした。 SSIのテキストカウンタのパスが「http://xxx.yyy.zzz/aaa/bbb/ccc/txtdayc1.cgi」だとしたら、仮想パスは「/aaa/bbb/ccc/txtdayc1.cgi」のようなので、そう記述しましたが動作しませんでした。 CGIと同じディレクトリに置いているので、記述を「<!--#include virtual="./txtdayc1.cgi"-->」に変えたところ、HTMLファイルでは動作しました。 なぜSSIのテキストカウンタがCGIで表示されないのか、アドバイスをお願いできないでしょうか? また、「<!--#include virtual="仮想パス"-->」を「<!--#include virtual="CGIファイル名"-->」または「<!--#include virtual="フルパス"-->」のように記述しても問題ないのかも教えて頂けると助かります。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • アクセスカウンターをつくろうと・・

    アクセスカウンターを作ってテストしてみたところアクセスカウンターのテキストがそのまんま表示されてしまいました。聞いたところSSIの設定をしていないからかもと言っていました。 こういったわけなんですがSSIの設定はどこでやったらいいのでしょうか? ちなみに教えてもらった人も自信薄なのでもしかしたらこうでは?と言う回答もお待ちしてます。

    • ベストアンサー
    • CGI
  • アクセスカウンターCGI型とSSI型

    HPのアクセスカウンターについて教えていただきたいです。 CGI型とSSI型ってどう違うのでしょうか? ある解説書には訪問者数と、ヒット数の違いというあるですが、 よくわかりません。どなたか素人にもわかるように教えてください。

    • 締切済み
    • CGI
  • アクセスカウンタについて

    SSIのアクセスカウンタを使っているのですが、ezweb(au)などの携帯の場合、キャッシュ機能がディフォルトであるので、ちゃんとカウントされないんです。ブラウザ履歴クリアしない限り、何回入室しても初めの1回しかカウントされません。 そのため実際のアクセス数とは大きなずれが生じてしまいます。これを解消する方法はないのでしょうか?できればPHPなどは使わずにCGIかSSI(またはHTMLやHDMLなどのタグ)でうまく解消できる方法が知りたいです。 なにぶんパソコンを持ってからまだ1年もたっていないのであまり難しいことができないもので、ご教授お願いします。

    • 締切済み
    • CGI
  • ツールチップの表示時間の調整

    HTMLでWEBページを作り始めた初心者です。Javaなどの高等技術はまだ習得していません。純粋にHTMLでの記述での質問ですが、 WEB表示されたテキストや画像の上にマウスを持ていくとそのテキストや画像の説明文を出すことができるとのですが(ツールチップ「title="xxxxx"」を挿入)、このポップアップみたいに出てくる説明文、同じIEを使って参照しても出方が異なるように見えます。 ・マウスが乗っかっている間ずっと表示されている。 ・マウスを乗せて数秒表示された後消える。 HTML内では、先のtitle="xxxxx"で指定しているだけなのですが、表示に違いが出るのはなぜなんでしょうか。 IEの何らかの設定が関係するのでしょうか、それともHTMLの記述に関係するのでしょうか。IEの設定で表示が制御できるのであればその方法をお教えいただけないでしょうか。

    • ベストアンサー
    • HTML
  • カウンタCGIについて

    今、カウンタを自作しています。 カウンタの種類はテキストカウンタです。 ですがカウンタを設置しているページからその他のページへ移動し、ブラウザの「戻る」ボタンで戻ってきたときにカウントがされないんです。 カウンタをテキストで表示したい、SSIを使いたくないと言う理由でHTMLページではJavaScriptを用いてCGIの内容を取得するようにしています。 どうしたら解決できるでしょうか?よろしくお願いします。 <index.htm> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>カウンタ</title> </head> <body> <p> <SCRIPT language="JavaScript" src="count.cgi"></SCRIPT> <noscript>JavaScriptをONにしないとカウンタは動きません。</noscript> </p> <p> <a href="http://www.yahoo.co.jp/">Yahoo!Japan</a> </p> </body> </html>

    • ベストアンサー
    • CGI
  • アクセスカウンターについて。

    私はホームページにgooのサービスカウンターをとりつけたいとおもって いるのですが、何回ソースを書きなおしても表示されません。 見なおしたからHTMLあってるはずなんですけどね・・・ (あれってHPのソースにカウンターのHTMLを<BODY>~</BODY>タグの 間にいれるだけですよね??)

    • ベストアンサー
    • HTML

専門家に質問してみよう