2012-09-17 10 views
10

Ho un iframe in una pagina che viene eseguita in modalità quirks (non ho il controllo sulla pagina contenente), e ho bisogno della mia pagina per renderizzare modalità compatibile con le moderne funzionalità del browser.iframe che non esegue il rendering in modalità ie9 quando contiene la pagina è in modalità strane

La pagina contenuta fa un uso pesante delle nuove funzionalità JavaScript (specialmente le belle funzioni di array) e il rendering SVG. Mentre riesco a fare a shim le funzioni dell'array abbastanza facilmente, non posso forzare il rendering a svg.

Per essere chiari, la pagina interna NON è in esecuzione in modalità quirks - Ho specificato un doctype e il tag meta> edge < ie = edge. Sembra che sta usando la modalità di rendering di IE8 (difficile essere certi)

Un campione del problema è qui: http://stevesspace.com/quirks/quirks.html - caricarlo in cromo per vedere i risultati attesi, e controllare in IE9 o 10 per l'output effettivo.

MODIFICA: ho aggiunto la modalità documento e la modalità di compatibilità all'esempio, posso confermare che sta utilizzando la modalità doc IE8.

+0

possibile duplicato di [Will un rendering iframe in modalità quirks?] (http://stackoverflow.com/questions/3717932/will-an-iframe-render-in-quirks-mode) – GolezTrol

+0

Apparentemente il tipo di documento è ereditato da IE9. E il tuo test è corretto: la pagina diventa rossa all'interno dell'IFrame, ma non quando la apri al di fuori dell'IFrame (IE) o del tutto in Chrome. Ora come risolverlo ... non lo so. : -/Buona domanda con belle prove, però. – GolezTrol

+0

Ecco un suggerimento su come correggere almeno eventuali problemi CSS a causa di questo problema. Tuttavia, non risolve la modalità quirks. http://css-tricks.com/ie-iframe-quirksmode/ – GolezTrol

risposta

7

Ho finito per utilizzare un tag oggetto invece di un iframe, sembra funzionare bene su browser moderni.

<object type="text/html" data="http://example.com"></object> 

Si scopre non è possibile modificare l'URL utilizzando JavaScript in IE9, ma questo non è un grosso problema - la rimozione/aggiunta di un nuovo elemento oggetto funziona altrettanto bene per questo.

Aggiornamento: Questo tag può anche essere in una pagina intermedia che i punti iframe per e tutto funziona bene Aggiornamento 2: Questa soluzione non funziona in IE10

+1

Questo non è vero, questo NON funziona in IE9. –

+0

Puoi espandere? Funziona bene per me. – XwipeoutX

+0

In IE10, cosa succede con la soluzione ? La soluzione iframe in IE10 sembra rendere il genitore come Quirks e l'interiore come la modalità standard IE10, che è quello che volevi, penso. –

Problemi correlati