ホームページ  >  記事  >  ウェブフロントエンド  >  Internet Explorer で Array.indexOf() を動作させるにはどうすればよいですか?

Internet Explorer で Array.indexOf() を動作させるにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-24 09:07:09943ブラウズ

How Can I Make Array.indexOf() Work in Internet Explorer?

Internet Explorer ブラウザに対する Array.indexOf() の互換性の修正

JavaScript が広く採用されているにもかかわらず、Internet Explorer ブラウザにはネイティブ機能がありません。 Array.prototype.indexOf() は、配列内のオブジェクトの出現を検出します。この問題を解決するには、ページ上の次のスニペットを使用して Array プロトタイプを拡張できます:

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;
}

この修正を実装するときは、次のアドバイスを考慮してください:

  • プロトタイプの存在を確認します: 配列プロトタイプを拡張する前に、次の存在をチェックして、indexOf() 関数がすでに存在するかどうかを確認します。 Array.prototype.indexOf.欠落している場合は、関数を実装してください。

ブラウザ検出の回避: 「if (browser == IE Style Browser)」のようなブラウザ検出コードの使用は、信頼性が低く、一般的に推奨されません。予期しない動作が発生する可能性があります。

代わりに、Mozilla 開発者による次の推奨事項を優先してください。ネットワーク (MDC):

if (!Array.prototype.indexOf) {

}

このアプローチにより、ブラウザー固有のチェックを必要とせずに互換性が保証されます。ベスト プラクティスとして、ブラウザに依存するソリューションよりも、常にクロスブラウザ ソリューションを優先してください。

以上がInternet Explorer で Array.indexOf() を動作させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。