トップページはこちら

<image>というタグ

このスクリプトでは、アクセス先のHTMLがframesetなら、各frame srcのページを連結して表示してます。各frame srcをa hrefに書き換えてリンクを表示するという考え方もあり、確か携帯版のgoogleがそうなんだけど、これだと、特にframe srcが沢山ある場合に、どのリンクがどのページなのか判り辛いわけで(frameタグにはalt属性とかがあるわけじゃないので、リンクの表示名がnameかファイル名になっちゃうので)。パケ代もムダだし。

さてこの場合、frame srcがさらにframesetだったらどーすんの?というお題が当然あって、同じように連結し続けていると無限ループに陥る可能性がなくはないわけで(一般的なウェブブラウザは何階層目かで表示を止めるんじゃなかったかな)。
まあ、フレーム自体が流行らない昨今、そんなページはなかなかお目にかかることはないだろうと思って、この場合はframe srcをa hrefに書き換えるようにしています。

ところがさっきたまたまアクセスしてみた某Jリーグクラブの公式サイトがそんな作りだったのでちょっとビックリ。
で、それだけなら別にいいんだけど、ところがframe srcがframesetではない、普通に内容が表示される筈のHTMLになっている部分も、なにも表示されない。
ああこれは、これまで現物にお目にかかったことがなく検証が出来てなかったので、この部分のロジックにヌケがあったんだろうなあとコードを見直してみたけど、どうも問題なさそうで。
で、あらためてその部分のHTMLソースを見て再びビックリ。

そのHTMLは、そのクラブのスポンサー企業のバナー画像を羅列しているものなのですが(なので入れ子のフレームを採用してるのでしょう)、画像を指定しているタグが、よく見りゃ<img~ではなく<image~となってる。
なんだこのタグ?
てなことで調べてみたら、HTML+とかIBM WebExplorerとかの、W3C標準が確立する以前に存在していたHTML(互換の?)文法で定義されていたタグだそうなんですね。へええ。

このクラブ、日本でも屈指の人気を誇り、サイトも大手ISPのポータルサービスのひとつとして運営されてるのだけど、それを考えるとなんだかなあ。

imageというタグは、悪いことにMozillaにしろInternet Explorerにしろ、imgタグと同じと解釈してちゃんと表示してしまうらしい(なのでソースを見ない限り気付かない)。それならこのスクリプトもimgタグと同じに扱うべきかと思ったのだけど、同様のタグが他にもあるような気がしないでもなく、調べるのも面倒で、またこのクラブのサイトでも、他のページは普通にimgタグが使われていて、このページはあくまでイレギュラーのようなので、余計なロジック(簡単ではあるけど)を付け加えるのもなんなので、とりあえず放置してみることにすますた。他にも頻繁に見かけるようなら考えるけどさ。

てなことでこのクラブの公式サイトのトップページをこのスクリプト経由で見ると、大層見栄えが悪いだけでなく、表示されるべきスポンサー企業のバナー画像(を変換したリンク)は表示されないわけですが、今のところはそういう仕様です。
まあ、表示されてたとしても、そんなリンクをわざわざクリックするひともいないと思うけど。


2005/09/07