記事本文
track feed を試してみた
基本的には次のようなスクリプトを、リンクが張られる可能性がある HP に貼り付けるだけで設置が完了します。
<script src="http://trackfeed.com/usr/abcdef01243.js"></script>blogなどではテンプレートを編集するだけで簡単に設置できます。
type 属性が書かれていない ?
とか、ソース内のどこに貼り付ければいいの ?
といった疑問を抱きつつ、
貼り付けた位置には、次のいずれかの画像が表示されます
ということなので、フッタ部分に貼り付けることにしました。
というか、最初は head 要素内に貼り付けようとしてしまいました。
フッタ部分は別テンプレートに書き出して、各テンプレートから include しているので、手間をほとんどかけずに設置完了。 しばらくしてから、生成された RSS を見てみると、確かに hxxk.jp に対してリンクを張っていただいたページや、検索エンジンの検索結果などが item 要素として羅列されていました。
ログからリファラを抽出してチェックする手間を省けるため、自前でアクセス解析を行っている場合でもなかなかのメリットがあります。 もちろん、自前でアクセス解析を行っていない場合はより大きなメリットになるでしょう。
Firefox で表示されていない ?
しかし、設置してしばらくして気がついたのですが、 Firefox では track feed の画像が表示されていません。 何故 !? と思って Opera を起動してもやはり表示されていません。
おかしいなと思って IRC のメンバーにも確認してみたら、 Firefox や Opera を使っている人は、 OS などに関係なく表示されませんでした。
- IE 6.0 でのスクリーンショット
-
- Mozilla Firefox 1.0 でのスクリーンショット
-
- Opera 7.53 でのスクリーンショット
-
document.write のことを失念していました
以前どこかで、 application/xhtml+xml の XHTML ( というか text/html のもの以外 ? ) では
document.write
は使えないという話を小耳に挟んでいましたが、自分は使わないしなあということですっかり忘れており、 IRC にてそのことの根拠を kota さん ( Webweaveres - weavin' | clippingグループ - clippin' ) に教えていただきました。
- Does document.write work in XHTML?
No. Because of the way XML is defined, it is not possible to do tricks like this, where markup is generated by scripting while the parser is still parsing the markup.
You can still achieve the same effects, but you have to do it by using the DOM to add and delete elements.
で、 track feed のスクリプトがどうなっているのかというと、
ref=document.referrer; if(ref==parent.document.URL)ref=top.document.referrer; ref=escape(ref); url=escape(document.URL); document.write('<a href="http://trackfeed.com/?r=24739cfc18" target="_blank"><img src="http://trackfeed.com/img.php?r=24739cfc18&ref=',ref,'&url=',url,'" border="0" alt="track feed" /></a>');
といったように、
document.write
でバナーを表示させ、その際に呼び出された元のリファラを track feed のシステムに送信しているようです。
hxxk.jp では Another HTML-lint と text/html と XHTML 1.1 - IE にのみ text/html を指定するで書いた通り、 IE 以外には HTTP ヘッダの Content-Type を application/xhtml+xml として送出しているため、実質 IE 以外では track feed のバナー表示やリファラ収集は行えません。
実際に、以前から使っていたアクセスログとの照合を行うと、 Firefox や Opera によるアクセスのリファラは track feed には記録されていませんでした。
また、 Firefox の JavaScript コンソールを見てみると、しっかりと エラー: uncaught exception: [Exception... "Object cannot be created in this context" code: "9" nsresult: "0x80530009 (NS_ERROR_DOM_NOT_SUPPORTED_ERR)" location: "http://trackfeed.com/usr/24739cfc18.js Line: 5"] と書かれていました。
track feed への要望
- Q. BETA版ということですが、正式版と何が違うのですか?
A. β版は、提供サービスのさまざまな検証を目的としています。 そのため、予告なくサービスの一時停止などのメンテナンスが入る可能性があります。 よろしければサービス向上のため、いろいろな意見をお寄せください。
ということなので、以上を踏まえてメールを送ってみようと思います。
document.writeではなく DOM での実装はできないのか- できれば
target="_blank"は使わないで欲しい
主にこんな感じで。 私が DOM を習得していれば、ソースをそのまま送るということも出来ますが、実際は DOM の知識が皆無なので、要望するだけになりそうです。




