Heim > Web-Frontend > js-Tutorial > Warum funktioniert indexOf nicht ordnungsgemäß mit Arrays in IE8?

Warum funktioniert indexOf nicht ordnungsgemäß mit Arrays in IE8?

Susan Sarandon
Freigeben: 2024-12-07 11:05:14
Original
461 Leute haben es durchsucht

Why Doesn't indexOf Work Correctly with Arrays in IE8?

indexOf-Funktionsanomalie in IE8 für Array-Objekte

Die bereitgestellte JavaScript-Funktion, die zur Validierung von Dateierweiterungen entwickelt wurde, stößt währenddessen auf ein Problem speziell in IE8 die Ausführung der if (allowed.indexOf(ext[1]) == -1)-Anweisung. Dieser Fehler wirft die Frage auf, warum die indexOf-Funktion in IE8 nicht korrekt ausgeführt wird.

Die indexOf-Funktion, eine native Methode in JavaScript-Arrays, gibt den Index des ersten Vorkommens eines angegebenen Elements innerhalb des Arrays zurück. In Internet Explorer-Versionen vor IE9 war diese Funktion jedoch nicht für Arrays definiert. Daher löst der Versuch, indexOf auf einem Array in IE8 zu verwenden, den Fehler aus.

Lösung

Um diese Diskrepanz zu beheben, kann vor der Verwendung von indexOf ein Polyfill verwendet werden Funktion. Ein Polyfill ist ein Codeausschnitt, der die Kompatibilität mit älteren Browserversionen gewährleistet. In diesem Fall kann die Polyfüllung für Array.prototype.indexOf wie folgt implementiert werden:

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;
  };
}
Nach dem Login kopieren

Die Implementierung dieser Polyfüllung stellt sicher, dass die indexOf-Funktion in älteren IE-Versionen verfügbar ist, sodass die JavaScript-Funktion wie vorgesehen funktionieren kann .

Das obige ist der detaillierte Inhalt vonWarum funktioniert indexOf nicht ordnungsgemäß mit Arrays in IE8?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage