Internet Explorer ブラウザの JavaScript で配列 indexOf() を修正する方法 質問する

Internet Explorer ブラウザの JavaScript で配列 indexOf() を修正する方法 質問する

JavaScript を少しでも使用したことがある人なら、Internet Explorer が Array.prototype.indexOf() の ECMAScript 関数を実装していないことに気付いているでしょう (Internet Explorer 8 を含む)。次のコードを使用してページの機能を拡張できるため、これは大きな問題ではありません。

Array.prototype.indexOf = function(obj, start) {
     for (var i = (start || 0), j = this.length; i < j; i++) {
         if (this[i] === obj) { return i; }
     }
     return -1;
}

これをいつ実装すればよいですか?

すべてのページで、プロトタイプ関数が存在するかどうかを確認し、存在しない場合は配列プロトタイプを拡張する次のチェックをラップする必要がありますか?

if (!Array.prototype.indexOf) {

    // Implement function here

}

それとも、ブラウザをチェックして、Internet Explorer であればそれを実装するのでしょうか?

//Pseudo-code

if (browser == IE Style Browser) {

     // Implement function here

}

ベストアンサー1

こうやってみてください...

if (!Array.prototype.indexOf) {

}

としてMDCによる推奨互換性

一般的に、ブラウザ検出コードは絶対に避けるべきです。

おすすめ記事