Mozilla と従来のブラウザとの互換はある?

前へ 目次 次へ

今回から、気になる Mozilla と従来のブラウザとの互換性についての話題を 採り上げたいと思います。


最初に確認したい項目といえば、HTML の各要素( オブジェクト )へのアクセスがどうなるか? ってことでしょう。

表示・消去する、配色を変える、位置を変えるなど全て、 対象となるオブジェクトを決定できなければ何もできません。

ってことで、JavaScript1.2( NN4 )の Document オブジェクトで定義されている 代表的なオブジェクト配列について比較してみました。

W3C の欄は W3C DOM Level 2 で規定されているかどうかを示します。
Mozilla の document.plugins は M17 レベルでは navigator.plugins と 同じ値( つまり、実装されている plugin の配列 )が返されますが、バグと 考えられます( つまり、将来どうなるかは不明 ^^; )。
項目NN4IE4/5MozW3C備 考
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 以降の部分は何らかの対応が必要になると考えられます。

前へ 目次 次へ

戻る Copyright(c) 2000 ShinSoft All rights reserved.