2011-02-04 1 views
13

Ho una vecchia applicazione che utilizza frame (non iframe) è stata scritta nei giorni di IE6, quindi viene eseguita in modalità quirks.Esegui la modalità quirks in un frame e la modalità standard in un altro?

È possibile (utilizzando IE 7 o 8) avere una trama ancora in modalità quirks e un'altra in modalità standard o l'intero browser deve essere in una modalità o in un'altra?

Ho provato senza successo.

Ho visto this answer, che si applica agli iframe, ma per quanto riguarda i fotogrammi normali?

risposta

9

Credo che non si ottenga la stessa opzione con i frame come si fa con un iframe. Come ha affermato la risposta della domanda collegata, l'obiettivo in un iframe non dipende dal genitore. Nelle cornici regolari le pagine si affidano tutte al genitore. Non penso che tu possa separare i tipi.

+1

questo ha lavorato per IE8, ma non funziona più per IE9. Doctype for iframe viene ereditato dalla pagina padre e non è possibile sovrascriverlo nell'iframe ... –

2

Non sono sicuro che questo possa essere d'aiuto, ma secondo il centro di Mozilla Dev Firefox rende le sue decisioni di tipo quirks basate solo su doctype.

https://developer.mozilla.org/en/Mozilla's_DOCTYPE_sniffing

Noterete utilizzando la vecchia doctype frame trigger modalità "quasi standard", che potrebbe apparire come quirksmode.

+0

Hmmm. Posso dire dal mio layout che è sicuramente la modalità strane. –

+1

Non sono sicuro di quale sia la differenza di rendering tra la modalità "quasi strane" e "stranezze" (suppongo che sia probabilmente più vicina alle stranezze dal momento che il rendering è così per te), ma in definitiva dice che non otterrai gli standard completi modalità con un tipo di documento frameset. –

0

Se si riesce a modificare il codice (o HTML) dell'applicazione, è possibile aggiungere un meta tag (appena al di sotto della testa), in modo che costringe IE per renderlo in quirks mode, in questo modo:

<meta http-equiv="X-UA-Compatible" content="IE=5">

+0

No, i metatag non aiutano (ho provato). –

1

Vedere la mia risposta qui per soluzione MSDN-documentato per IE9: How to force Iframe to run quirks under a standard parent frame

in breve, non è possibile innescare quirks mode in un frame (o iframe) se la pagina genitore è il rendering in modalità IE9, ma è è possibile attivare la modalità "quirks e" la simulazione " incorporata nel motore di rendering di IE9.

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

Ulteriori approfondimenti: http://msdn.microsoft.com/en-us/library/gg558056(v=vs.85).aspx