| |
今回から、気になる Mozilla と従来のブラウザとの互換性についての話題を 採り上げたいと思います。
最初に確認したい項目といえば、HTML の各要素( オブジェクト )へのアクセスがどうなるか?
ってことでしょう。
表示・消去する、配色を変える、位置を変えるなど全て、
対象となるオブジェクトを決定できなければ何もできません。
ってことで、JavaScript1.2( NN4 )の Document オブジェクトで定義されている
代表的なオブジェクト配列について比較してみました。
項目 | NN4 | IE4/5 | Moz | W3C | 備 考 |
---|---|---|---|---|---|
anchors | ○ | △ | ○ | ○ | [IE] 名称でのアクセスはコレクションのみ |
applets | ○ | ○ | ○ | ○ | |
embeds | ○ | ○ | ○ | × | |
forms | ○ | ○ | ○ | ○ | |
images | ○ | ○ | ○ | ○ | |
layers | ○ | × | × | × | |
links | △ | ○ | ○ | ○ | [NN4]名称でのアクセスは不可 [IE]名称でのアクセスはコレクションのみ |
plugins | ○ | ○ | × | × | [Moz] navigator.plugins と同じ(バグ?) |
結果で見ると applets,embeds,plugins は JavaScript だけの
問題ではないので、この際無視して(笑)考えると、
layersを除いては従来通りアクセスできることに気がつきます。
... f(^^; #
いやぁ、一安心
◆ anchor の場合( name : 'anc' )
// 配列の要素番号から
document.anchors[0];
// 名称から( これはブラウザ依存になります )
document.all?document.anchors('anc'):document.anchors.anc;
◆ form の場合( name : 'frm' )
// 配列の要素番号から
document.forms[0];
// 名称から
document.frm;
document.forms.frm;
◆ image の場合( name : 'img' )
// 配列の要素番号から
document.images[0];
// 名称から
document.img;
document.images.img;
◆ link の場合
// 配列の要素番号から
document.links[0];
じゃあ残るレイアはどうか?って言うと、 やはり今まで通りブラウザ依存になります。
<div id="d1"><div id="d2"></div></div>
とある場合、
◆ IE なら
d1;
d2;
document.all('d1');
document.all('d2');
◆ NN4 なら
document.layers[0];
document.layers[0].layers[0];
document.layers[0].document.layers[0];
document.d1;
document.layers.d1;
document.layers.d1.layers.d2;
document.layers.d1.document.layers.d2;
◆ Mozilla なら
document.getElementsByTagName('DIV')[0];
document.getElementsByTagName('DIV')[1];
document.getElementById('d1');
document.getElementById('d2');
ってな具合です。
結論を言えば、オブジェクトへのアクセスに関する限り、従来の JavaScript1.1 相当の 範囲のスクリプトは大体そのまま動作すると思われますが、 JavaScript 1.2 以降の部分は何らかの対応が必要になると考えられます。