Warum forEach() funktioniert nicht in einem iframe im IE11?
Diese Frage wurde geschlossen, da off-topic, also habe ich gekennzeichnet die fehlt info.
Spezifischen problem oder einer Fehlermeldung plus kürzesten code notwendig:
Den code unten funktioniert nicht bei IE11, wenn es in einem iframe von bestimmten websites.
("Bestimmte" nicht-spezifische, aber ich habe nicht eine öffentliche demo. Kann ich nicht machen, bis ich die Ursache in meinem privaten code. Doch die Frage ist konkret genug beantwortet werden, indem ein Experte, deswegen habe ich gefragt anstatt ALSO eine lange debugging-Prozess, ohne jede Idee.)
['a', 'b'].forEach(function(elem){console.log(elem);});
Den Fehler sagt, dass das array nicht unterstützt, ist die forEach-Methode.
Gewünschte Verhalten:
Die forEach () - Methode führt eine Funktion zur Verfügung gestellt einmal pro array
element. - MDN
- Sie gehen zu müssen, um nach dem code, beteiligt sich jeder in der Lage sein zu helfen.
- Ich kann nur vermuten, da Sie noch keinen eine Reproduktion. Meine Vermutung ist, dass der Rahmen diesen Befehl ausgegeben.
delete [].constructor.prototype.forEach
. Entfernt dieforEach
Methode von allen arrays. - Kontrollieren Sie, dass die "Dokument" - Modus mindestens 9? IE8 und früheren Versionen nicht unterstützt
forEach
Lesen Sie this. - code Hinzugefügt wird.
- Ich Steuere den iframe: der erwähnte Befehl wird nicht ausgegeben. Ich bin nicht verantwortlich für die iframe-Eltern, aber wenn der Befehl erteilt, dass: es keinen Einfluss auf den iframe.
- Der Dokument-Modus in der form (wenn nicht im iframe) ist Edge. Der Dokument-Modus des Containers website ist 7 (bedingt durch eine X-UA-compatible-meta-tag). Hat dies Auswirkungen auf den iframe? So scheint es mir. Ich lese Ihre Ressourcen, um zu sehen, ob ich dies vermeiden. Danke für Eure Hilfe!
- Ja, die iframe betroffen ist, indem Sie die übergeordneten Einstellungen (auch wenn ich edge-Modus explizit in einem meta-tag). "IE11 verwendet Quirks-Modus-emulation aus, wenn die top-level-Seite ist nicht im Edge Modus." - msdn.microsoft.com/en-us/library/ff955402(v=vs. 85).aspx
- Ich habe sinngemäß die Frage, passen die Regeln.
Du musst angemeldet sein, um einen Kommentar abzugeben.
"IE11 verwendet Quirks-Modus-emulation, wenn die top-level-Seite ist nicht im Edge Modus." - MSDN
In diesem Modus werden die arrays nicht die Unterstützung der forEach-Methode.
Verwenden Sie einen einfachen for-Schleife statt, oder schreiben Sie diese direkt nach dem title-tag des Eltern: