「では、問題無いではないか。とりあえずNN2.0で動けばいいだろう」と考えていると甘いと言わざるをえません。困ったものでNNでは動作するのにIEでは動作しないというスクリプトは割と存在すると思います。
私はおみくじのスクリプトを作った際に見事にひっかかりました。実は先に背景色のテストのスクリプトで問題を起こしているにもかかわらずです。
ポイントはどうもブラウザのスクリプト処理の方法にあるようです。
JavaScriptではオブジェクトとメソッド、プロパティをピリオドで繋いで表現しますが
(文がわかりにくいですが、幾つか本を読めばわかると思います)
NNでは例えばdocumentオブジェクトなんてのはかなりの頻度で省略します。
確実にこれが理由とは言い切れないのが心苦しいところですが、IE3.0ではこれらは省略できません。
NNでは当たり前の部分は省略しても差し支えないのですが、IE3.0では融通がききません。
さらに、新しいWindowを開いたとしましょう。
そこにdocument.writeを使って何か書き込みたいときはNNならいきなり文章を書くなりすればいいわけですが、IE3.0では下のような感じにdocument.open()が必要になります。
msg=window.open(hogehoge)
msg.document.open()
msg.document.write("hogehoge")
msg.document.close()
大体においてIE3.0は変に文法に厳しいようです。NNだと省略できるところが省略できないというのが大体のエラーの正体であると思います。
「なあんだ。じゃぁIE3.0で動作確認すればいいじゃないか」というかもしれませんが、それも甘いのです。つい先ほど、私もこの点に引っかかりました。
カラーテストのスクリプトを作ってIE3.0で動いたのでNNで動作確認してみると動かないのです。
理由は、プロパティの大文字小文字を間違えていたためでした。
NNのJavaScriptでは大文字小文字の間違いは大きな問題です。イベントハンドラなども含めて大文字小文字の区別はしっかりつけなければなりません。
ところがどうもIE3.0はあまり厳しくないようです。こういった点にも注意したいものです。