Semi-long Communication:TINAMIのアクセス解析

(published: Mar. 14, 2000 / modified: Oct. 4, 2002)


更新履歴


発端

昨日からTINAMIのアクセス解析サービスを始めた訳ですが、 そこで使われる解析用のフレーズを埋めこむのに苦労したという話です。

まずTINAMIでアクセス解析を申し込むと、 下の様なHTML文書が出てきます。

<!--ここから-->
<SCRIPT type="text/javascript">
<!--
var uid="xxxxxxxx";
var ref=window.document.referrer;
var tag="<A HREF=\"http://webstat.tinami.com/gw.cgi?"+uid+"\"><IMG SRC=\"http://webstat.tinami.com/banner.cgi?id="+uid+"&rf="+ref+"\" BORDER=\"0\" ALT=\"[TINAMI]\" WIDTH=88 HEIGHT=31></A>";
document.write(tag);
// --> 
</SCRIPT>
<NOSCRIPT>
<A HREF="http://webstat.tinami.com/gw.cgi?xxxxxxxx"><IMG SRC="http://webstat.tinami.com/banner.cgi?id=xxxxxxxx&rf=noscript" WIDTH=88 HEIGHT=31></A>
</NOSCRIPT>
<!--ここまで-->

上記のテキストエリア内のタグをコピーして、あなたのサイトのトップページ(TINAMIに登録されているURLのページ) の好きなところに貼り付けてください。

しかし私のサイトのトップページXHTML1.0strict準拠なので、 このまま埋めこむとSGMLの仕様すら満たさない謎文書になること請け合い、 しかもJavaScriptの知識も皆無、 という訳でW3Cの仕様書その他とニラメッコしつつソースを改造しました。

具体的な改訂について

改造した結果

こうした改造によってアヴァンタイトルに埋めこまれたスクリプトは、 はMozilla browserでもInternet Explorer 5でも作動し、 文書自身もAnother HTML-Lint でエラーの出ないものとなりました。

まずはHTMLパートのソースを。

<script type="text/javascript" src="tinami.js">
</script>
<noscript>
 <p>
  <a href="http://webstat.tinami.com/gw.cgi?xxxxxxxx"><img src="http://webstat.tinami.com/banner.cgi?id=xxxxxxxx&amp;rf=noscript" alt="[tinami]" width="88" height="31" /></a>
 </p>
</noscript>

そして外部スクリプトは下の様になります。

var uid="xxxxxxxx";
var ref=window.document.referrer;
var tag="<a href=\"http://webstat.tinami.com/gw.cgi?"+uid+"\"><img src=\"http://webstat.tinami.com/banner.cgi?id="+uid+"&amp;rf="+ref+"\" border=\"0\" alt=\"[TINAMI]\" width=\"88\" height=\"31\" /></a>";
document.write("<p>");
document.write(tag);
document.write ("</p>");

反省

JavaScriptの知識が無い状態での突貫工事だったので、出来は今一ツです。 特に外部スクリプトでの実体参照など、未だに謎な部分が多いです。

一番の問題はスクリプト関係の要素及び属性が完全封印されている ISO/IEC 15445:2000でどうやって組み込むかです。 一番良いのは参照元の探知もサーバ側で全部やってくれることなのですが。



H-man AND NOW
作:Nishino Tatami (ainosato@vc-net.ne.jp)