ウェブ閲覧は主に Chrome を, 場合によって Internet Explorer (以下 IE) を使ってます.
JavaScript は IE で動くように書いてました.
まわりを見回すと Firefox をお使いの方が結構多いようなので, Firefox (現行バージョン 3.5.3) で JavaScript を使う自分の個人ページを確認.
動かないところがあります.
DOMの仕様が違うんだね.
ということで, Firefox 対応の覚書.
IE | Firefox | |
---|---|---|
1 | document.all オブジェクトが存在する | document.all オブジェクトは存在しない |
2 | イベントオブジェクト event の イベント発生元エレメントは event.srcElement |
イベントオブジェクト event の イベント発生元エレメントは event.target |
3 | エレメント element の内部の文字列は element.innerText | エレメント element の内部の文字列は element.textContent |
4 | イベントハンドラに指定する関数に引数として event を明示的に渡さなくても (たとえば onclick=”func()” と書いても) 関数からは外部オブジェクトとして event を参照できる. |
イベントハンドラに指定する関数に引数として event を明示的に渡さないと (たとえば onclick=”func(event)” と書かないと) 関数からは event オブジェクトを参照できない. |
2, 3 のコードの場合分けは 1 を使って
if (document.all)
event.srcElement.innerText = text;
else
event.target.textContent = text;
のように書く.
4 については, Firefox 側にあわせていつでも明示的に渡すようにする.
Chrome や Opera はどちらでも動くようになってるらしいです.
Safari はどうかしら…