まず、次の行を見ていただきたい。
どのように表示されていますか? 多分、次のようになっているのではないだろうか。
これはJavaの getYear を使った結果である。なぜこのような違いが出るのかと言うと、この命令に対して、インターネットエクスプロウラは4桁の答を返し、ネットスケープはそうではないからだ。
ちょっと解説しておくと、この命令は前世紀から使われている。その際、1900年代の上2桁は省略して、例えば1998年は「98」を返していた。インターネットエクスプロウラは2000年を越えた時に4桁に対応したが、ネットスケープはそのまま継続する形で対応した。すなわち、1999年が99だから2000年は100になるというわけである。以下、数字は1ずつ増えていく。
しかし、問題はそんなに簡単ではない。試しにコンピューターの時計を1998年に変えてこれを再表示させて欲しい。するとどちらのブラウザでも、98年になってしまうのだ。
これは困ったことである。普通、ブラウザごとの特殊な機能に関しては、対応していないブラウザについてはタグを無視出来る機能で解決する。例えば次の行、
これはインターネットエクスプロウラの人にはきちんと振り仮名が振られていると思う(ネットスケープの人には申し訳ないが、お見せすることが出来ない)。しかし、ネットスケープ(少なくとも7.1までは)の人には、「砂丘(デューン)」のように、振り仮名が括弧に入って表示されるだろう。これは、振り仮名機能を持たないブラウザに対応する手段である。
ちなみにソースは次の通りになっている。<>で囲まれた部分を無視すれば、ちゃんと括弧表示になることがわかるだろう。
Javaは使い方によっては、ホームページに面白い機能を持たせることが出来る。しかし、ブラウザの種類によって結果が違うのでは何にもならない。
個性とは、使い勝手や処理速度などに現れるべきものである。こんなところで出すものではない。