2012-07-30 7 views
14

Wir haben eine übergeordnete Seite, die im IE9-Standard-Modus ausgeführt werden muss, Ausführen von HTML5-Befehlen. Darunter haben wir einen iframe, der im Kompatibilitätsmodus (IE7/8) laufen muss.Wie erzwinge ich Iframe zum Ausführen von Macken unter einem Standard-Eltern-Frame

In IE9 erbt iframes, wie ich verstehe, ihre Doctype von Parent. Ist das korrekt? Gibt es eine Lösung für dieses Problem? kann irgendwie iframe mit quirks doctype im Standardmodus Doctype Elternframe ausgeführt werden? Dank, Tal

+0

diese Antwort anzeigen -> http://StackOverflow.com/a/5624373/572939 – ManseUK

+0

mögliche Duplikate von [Run Quirks Mode in einem Rahmen und Standards-Modus in einem anderen?] (http://StackOverflow.com/Questions/4902255/Run-quirks- Modus-in-einem-Rahmen-und-Standards-Modus-in-einem anderen) –

+1

Diese liefern keine Antworten - da die gesamte Seite im IE7-Modus ausgeführt wird. Das erforderliche Verhalten besteht darin, den IE9-Modus im übergeordneten Modus zu aktivieren, im iframe-Modus jedoch im quirks-Modus. – Tal

Antwort

27

Es ist nicht möglich, einen anderen Rendering-Modus bei einem Kind iframe in IE9 auszulösen, wie es offiziell hier dokumentiert: http://msdn.microsoft.com/en-us/library/gg558056(v=vs.85).aspx (Hervorhebung hinzugefügt):

Obwohl das neuere Rendering-Engine nur verwendet wird, Wenn Windows Internet Explorer erkennt, dass eine HTML-Seite die höchste Stufe der Unterstützung für Standards angefordert hat, gilt dies nicht immer für untergeordnete Seiten , die innerhalb Frame und Iframe-Elemente geladen werden können. Da nur eine Rendering-Engine gleichzeitig aktiv sein kann, enthält IE9 Mode auch Emulation für Quirks Mode.

jedoch, wie es sagt, Sie können Trigger „Quirks-Modus-Emulation“, die die IE9-Rendering-Engine aktiv verlässt aber ändert sein Verhalten in mehrfacher Hinsicht den alten Quirks-Modus anzupassen.

JSBin Demo: http://jsbin.com/ozejuk/1/

Dieses Beispiel hat einen div mit Stil background: #ff0000; background: 00ff00; border-radius: 30px ... im Quirks-Modus, Hex-Farben ohne # werden akzeptiert. Im IE9-Modus sind sie nicht. Das Laden der Demo in IE9 zeigt ein rotes div auf der Elternseite und ein grünes div (aber immer noch mit abgerundeten Ecken) im iframe.

Wie Modus-Emulation in einem Iframe auszulösen Macken: http://msdn.microsoft.com/en-us/library/gg558096(v=vs.85).aspx

Kurzversion: DOCTYPE weglassen, hinzufügen: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

die komplette Liste der Nachahmungseffekte Quirks-Modus auf Rendering hat: http://msdn.microsoft.com/en-us/library/gg558047(v=vs.85).aspx

+0

Danke für die Antwort, Nick. Ich werde später oder nächste Woche nachsehen. – isherwood

+0

Leider scheint die Emulation des Quirks-Modus mein Problem nicht zu lösen, und zwar: https://bugbase.adobe.com/index.cfm?event=bug&id=2928139 Nochmals vielen Dank für die Antwort. Ich schätze die Mühe, die du hineingesteckt hast. +1. – isherwood

+0

Offenbar in IE10 + können Sie unterschiedliche Rendering-Modus in einem Kind auslösen. siehe http://stackoverflow.com/questions/26206688/ie11-quirks-mode-under-iframe-javascript-errors/41270772#41270772 –

Verwandte Themen