14

getElementByIdすべてのブラウザで動作すると仮定しても安全ですか? そうでない場合、サポートしている/サポートしていないのはどれですか?

4

4 に答える 4

13

すべてのブラウザーがこれをサポートしていますが、IE6&7 で発生した 1 つの問題 (@Esailja の回答に追加)

これを行う:

<input type="text" name="address" id="address" value="5th Avenue" />  

してはいけないこと:

<input type="text" name="full_address" id="address" value="5th Avenue" />  

これを行う必要がある理由は、Internet Explorer で を使用して要素をターゲットにしようとすると、getElementById何らかの理由でブラウザが id に加えて、ページ上の特定の要素の name 属性を検索するためです。name 値と id 値のコーディングに間違った方法を使用したと仮定すると、以下のコード ブロックは IE7 でまったく同じ結果になります。

var fullAddress = document.getElementById("full_address");  
alert(fullAddress.value);  

var fullAddress = document.getElementById("address");  
alert(fullAddress.value);  
于 2012-12-11T23:54:00.043 に答える
3

現在のすべてのブラウザでサポートされています。これは、DOM レベル 1 以降の DOM の一部です。基本的に、ドキュメント オブジェクト modul をサポートするすべてのブラウザ (IE 5.5 以降) は、このメソッドをサポートする必要があります。

ソース: MDN ( document.getElementById)

于 2012-12-11T23:45:57.653 に答える
3

それは非常に広くサポートされていますが、私が知っている少なくとも 2 つのバグ (両方とも jQuery ソースから):

  • Blackberryはdomにない要素を返します
  • IDに一致する要素が返さnameれます (Opera、IE.. バージョンは不明)
于 2012-12-11T23:49:08.733 に答える
1

あなたはそれが動作するための最小要件を求めたので、それは動作することが期待できる最も初期のブラウザを意味すると思います。このページをチェックしてください:

http://www.quirksmode.org/dom/w3c_core.html

それによると、あなたはIE-8より前の危険な状況にあり(彼らは「ほぼ」と言います)、FireFox、Safari、Chrome、およびOperaで全面的に優れています。

于 2012-12-11T23:51:53.817 に答える