Heim >Web-Frontend >js-Tutorial >Wie kann ich das Problem mit der Methode „indexOf' für Arrays in IE8 beheben?

Wie kann ich das Problem mit der Methode „indexOf' für Arrays in IE8 beheben?

DDD
DDDOriginal
2024-11-25 03:34:14612Durchsuche

How Can I Fix the `indexOf` Method Issue for Arrays in IE8?

IE8s fehlender indexOf für Arrays: Eine Lösung

In dieser allgemeinen JavaScript-Funktion ist die Verwendung von Array.prototype.indexOf innerhalb der Bedingung if (allowed.indexOf(ext[1]) == -1) verursacht ein Problem in IE8. Um zu verstehen, warum, schauen wir uns das einzigartige Verhalten von IE8 genauer an.

IE8 verfügt im Gegensatz zu modernen Browsern wie Opera, Firefox und Chrome nicht über eine indexOf-Methode für Arrays. Diese Auslassung ist auf die Tatsache zurückzuführen, dass der ECMAScript 5-Standard, der die indexOf-Methode eingeführt hat, von IE8 nicht unterstützt wurde. Daher führen Versuche, die indexOf-Methode auf Arrays zu verwenden, zu einem Fehler in IE8.

Um dieses Problem zu beheben, können wir die folgende Strategie anwenden:

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

Dieser Codeausschnitt , bezogen auf MDN, definiert eine Polyfüllung für die indexOf-Methode. Es stellt sicher, dass Array.prototype.indexOf in allen Umgebungen verfügbar ist, einschließlich IE8. Durch das Hinzufügen dieses Codes vor der Verwendung von indexOf auf Arrays können wir sicherstellen, dass er in allen Browsern, einschließlich IE8, ordnungsgemäß funktioniert.

Durch die Implementierung dieser Lösung funktioniert die ursprüngliche Funktion nahtlos in IE8, sodass Entwickler überprüfen können, ob In einer vom Benutzer ausgewählten Datei ist eine bestimmte Dateierweiterung zulässig.

Das obige ist der detaillierte Inhalt vonWie kann ich das Problem mit der Methode „indexOf' für Arrays in IE8 beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn