- ベストアンサー
カウントアップのやりかた
下記のようコードをbodyに入れてアクセス解析していますが。これをbodyでなく、javascriptになんらかの方法で組み込みはできないでしょうか。 <img src="count.cgi" width=1 height=1 border=0>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
アクセス解析用のimg要素が表示されないようにしたいのであれば、JavaScriptで細工をして解決しようとするよりも、スタイルシートで対処する方が確実なのではないかと思います。 例えば、 <div style="position: absolute; visibility: hidden;"><img src="count.cgi" width=1 height=1 border=0></div> などのようにしてやると、visibility: hidden;なので表示されませんし、position: absolute;の指定によって他の要素の表示から独立するので、表示されない要素の分の表示枠が他の表示内容の表示枠に対して影響しないようにできるのではないかと思います。 あるいは、もっと直接的に、そのアクセス解析用のコードを<div style="display: none;"></div>で囲って表示しないように設定してやるのでも、有効かもしれません。 どうしてもJavaScriptのコードにこだわるのであれば、要はアクセス解析用のCGIへのアクセスが発生すれば機能が確保できるということだと思うので、ダミーのImageオブジェクトを用意して、それにアクセス解析のCGIを読み込む仕掛けを入れればよいかもしれません。 <script type="text/javascript"><!-- Acs=new Image(); Acs.src="count.cgi"; //--></script> ただ、この場合、リファラなど取得するデータ内容がきちんとCGIに渡るかどうかはわかりません。 実際に動作させてみて、テストする必要はあるでしょう。 また、JavaScriptが有効でない環境では機能してくれないということもありますので、CGI呼び出し用のダミーのimg要素が表示に影響するのを防ぎたいというケースでしたら、上のダミーの要素をスタイルシートで隠してしまう方法のほうが良いように思います。 参考まで。
その他の回答 (1)
- the845t
- ベストアンサー率33% (246/743)
<scirpt language="JavaScript"> <!-- document.write('<img src="count.cgi" width=1 height=1 border=0>'); //--> </script> ってこと? カウンタはCGIを画像で呼び出すことでカウントアップしていますので、 画像で呼び出す以外だと、iframeを利用するとか・・・ なんらかの方法でCGIを呼び出す必要があるわけで・・・。
補足
>document.write('<img src="count.cgi" width=1 うまく説明できませんが、document.writeではなくて、bodyになんら表示されない形で、何かの方法がないかという意味の質問でした。 #<SCRIPT language=JavaScript></SCRIPT>内だけで実行されるような形でdocument.writeでもないような方法。 #「できない」という断言も歓迎。
お礼
回答ありがとうございました。 >アクセス解析用のimg要素が表示されないようにしたいのであれば 意図を読みとっていただきありがとうございます。 >visibility: hidden;" これを使って無事目的のことが達成できました。