Controllo MSIEs WebBrowser ospitato in WinForms app viene eseguito in modalità di compatibilità
Domanda
Sto ospitando MSIE in una forma WinForms. Purtroppo insiste sulla esecuzione in modalità di compatibilità a prescindere se lo do una pagina che viene eseguito in modalità IE8 in stand-alone IE. L'effetto di questo è che alcuni contenuti che rende correttamente in stand-alone MSIE viene completamente mis-allineati e incasinato nel controllo ospitato.
Oltre tipo di documento, ecc, c'è qualche modo magico per dire al browser web che voglio che il rendering della pagina allo stesso modo come se ho caricato in MSIE stand-alone?
Non voglio usare la chiave del Registro di override ( http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx ) a causa della mia forma essere parte di un componente aggiuntivo per un altro app. Io non voglio cambiare il comportamento di IE per l'applicazione principale e io non voglio cambiare per altri componenti aggiuntivi in ??esecuzione con tale applicazione. Voglio solo che questa al lavoro all'interno del browser ospitato in il mio forma, non app-larga e non a livello di processo.
Soluzione
Non ho testato questo, ma come sull'utilizzo del META tag , insieme con la HTTP attributo EQUIV , per impostare il valore di X-UA-COMPATIBLE
IE=8
, che indica al browser web per visualizzare una pagina in IE 8 modalità standard. Un esempio potrebbe essere:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Da questa linea nel seguente articolo sembra che questo dovrebbe funzionare.
Per impostazione predefinita, le applicazioni che ospita il aperta controllo WebBrowser pagine basate su standard in modalità IE7 a meno che la pagina contiene un appropriarsi di intestazione X-UA-Compatible. È possibile modificare questo con l'aggiunta del nome del file eseguibile dell'applicazione per la funzione FEATURE_BROWSER_EMULATION chiave di controllo e l'impostazione del valore di conseguenza.
Altri suggerimenti
Per modificare il comportamento predefinito del controllo Web Browser in esecuzione nell'applicazione per corrispondere a ciò che fa IE per sé, è necessario impostare il FEATURE_BROWSER_EMULATION Caratteristica fondamentale di controllo.
Per esempio, è possibile simulare il comportamento di IE8 (che consente di rendere i siti in modalità standard di IE8) nel modo seguente.
All'interno HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl
Create una nuova chiave denominata FEATURE_BROWSER_EMULATION
All'interno quella chiave, aggiungere un nuovo REG_DWORD con un valore 8000 con il nome del file eseguibile dell'applicazione. Per esempio:.
"YourApp.exe" = dword 8000 (Hex: 0x1F40)
Ulteriori dettagli sono a: http: // blog. msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx