ホームページ > ウェブフロントエンド > jsチュートリアル > IE8 で JavaScript の「indexOf()」メソッドが失敗するのはなぜですか?どうすれば修正できますか?

IE8 で JavaScript の「indexOf()」メソッドが失敗するのはなぜですか?どうすれば修正できますか?

DDD
リリース: 2024-12-01 04:28:10
オリジナル
521 人が閲覧しました

Why is my JavaScript `indexOf()` method failing in IE8, and how can I fix it?

IE8 の配列のindexOf() メソッドがありません

提供されたコードでは、indexOf() メソッドが CheckMe() 関数内の配列で使用されています。この関数は Opera、Firefox、Chrome では問題なく動作しますが、IE8 では if ( allowed.indexOf(ext[1]) == -1) の行でエラーが発生します。この問題は、IE8 が配列のindexOf() 関数をネイティブにサポートしていないために発生します。

この問題を解決するには、indexOf() メソッドを Array オブジェクトに追加するポリフィルを組み込むことができます。以下に例を示します。

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(elt /*, from*/) {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from) : Math.floor(from);
    if (from < 0) from += len;

    for (; from < len; from++) {
      if (from in this && this[from] === elt) return from;
    }
    return -1;
  };
}
ログイン後にコピー

indexOf() のこの実装は MDN のバージョンに基づいており、Firefox および SpiderMonkey と互換性があります。これは、IE8 またはそれをネイティブにサポートしていないその他のブラウザの Array オブジェクトに、indexOf() メソッドを追加します。

このポリフィルを組み込むことで、レガシー ブラウザでもコードが意図したとおりに機能することを保証できます。 IndexOf() メソッドがない IE8 と同様です。

以上がIE8 で JavaScript の「indexOf()」メソッドが失敗するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート