Desidero utilizzare IE8 come controllo WebBrowser in un'applicazione C#. Come posso disattivare la "modalità quirks" e forzare IE alla conformità agli standard (per quanto è implementato)?Come disattivare la modalità quirks a livello di codice nel controllo WebBrowser IE8?
risposta
Credo che il problema riscontrato è descritto in IEBlog: WebBrowser Control Rendering Modes in IE8:
Mentre i webmaster possono facilmente modificare loro sito per rendere correttamente nel nuova versione di IE, molti software fornitori non hanno il le risorse per inviano immediatamente le nuove versioni di loro applicazioni con le pagine interne aggiornate . Al fine di garantire che tali applicazioni esistenti rimangono in ordine, IE8 rende le pagine in esecuzione all'interno istanze del controllo WebBrowser in IE7 modalità standard di default.
Qui Vorrei sottolineare che i commenti sulla pagina dicono che quanto sopra non è corretto, e che "IE8 rende le pagine in esecuzione all'interno istanze del controllo WebBrowser in IE7 modalità rigorosa che in modalità non standard per default, a seconda il doctype della pagina. "
La soluzione è la seguente:
Quando un eseguibile carichi un'istanza del controllo WebBrowser si esegue la scansione del Registro di sistema per verificare se l'eseguibile vuole IE7 modalità IE8 Standards Standards o.
...
per l'esecuzione in IE8 Standards modalità di inserimento il seguente valore di registro:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_NATIVE_DOCUMENT_MODE]
"MyApplication.exe"=dword:13880
In entrambi i casi, MyApplication.exe dovrebbe essere sostituito con il nome dell'eseguibile che eseguirà WebBrowser cont rols in una modalità specificata.
Così suona come la soluzione "programmatica" è quello di scrivere una chiave nel Registro di sistema dicendo che si desidera modalità IE8 Norme per WebBrowser
controlli nella specifica applicazione.
L'ultima cosa che ho sentito è che IE8 usava standards mode by default. Stai vedendo un problema reale con l'ultima versione beta? Sei sicuro che sia il rendering in modalità quirks per iniziare, senza che un utente colpisca esplicitamente lo compatibility view button?
penso che il 'WebBrowser' di controllo e il browser stand-alone si comportano diversamente in questo caso. –
Sembra, sì. Modifica il titolo della domanda per renderlo più specifico. –
Si noti che sono stati apportati alcuni cambiamenti dalla versione beta, le chiavi di registro sono state rinominate, ecc. Read more here.
Se non si desidera utilizzare la tecnica chiave di registro, è possibile inserire il seguente tag:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
il "contenuto" le forze di attributi di rendering in vari modi.
Questo ha il codice vero e proprio fare a livello di codice questo e gestisce fino a IE11 finora:
- 1. IE8 e la modalità Quirks
- 2. Controllo WebBrowser IE8 Modalità di compatibilità Interruttore on/off
- 3. La modalità Quirks è rilevante nel 2011?
- 4. Forza IE9 in modalità Quirks?
- 5. IE8, Flash e WinForms Controllo WebBrowser
- 6. Barre di scorrimento indesiderate nel controllo WebBrowser in modalità IE9
- 7. Come aggirare la perdita di memoria nel controllo .NET Webbrowser?
- 8. Disabilita javascript nel controllo WebBrowser di WinForms?
- 9. Come visualizzare la barra degli indirizzi nel controllo WebBrowser
- 10. La piena giustificazione nel HTML e CSS: funziona in modalità-quirks limitate ma nessuno quirks mode scombina l'altezza
- 11. C# check/deseleziona la casella nel controllo WebBrowser?
- 12. Controllo navigazione e WebBrowser
- 13. Controllo WebBrowser come interfaccia utente
- 14. Come caricare pagine HTML locali nel controllo WebBrowser in C#
- 15. Come separare il buon codice dal codice in modalità legacy/quirks
- 16. Cambio di modalità di volo a livello di programmazione
- 17. Jquery funziona bene in modalità "Quirks"?
- 18. HTML 5 Doctype che causa la modalità quirks?
- 19. WP7 Controllo WebBrowser zoom
- 20. È possibile disattivare la modalità silenziosa a livello di programmazione in Android?
- 21. Modalità documento forzato = Standard IE8
- 22. Come disattivare Ctrl-clic nel codice VS
- 23. Android - Come cambiare la modalità Timepicker a livello di programmazione?
- 24. Come disattivare o attivare "Funzionalità Windows" a livello di programmazione
- 25. controllo MSIEs WebBrowser ospitato in WinForms applicazione funziona in modalità compatibilità
- 26. crea un controllo a livello di codice utilizzando MFC
- 27. Come posso visualizzare un'immagine nel controllo webBrowser direttamente dalla memoria?
- 28. Abilita e disabilita la rotazione automatica a livello di codice?
- 29. Visualizzazione di html da stringa nel controllo WebBrowser WPF
- 30. Esegui la modalità quirks in un frame e la modalità standard in un altro?
Sarebbe meglio se ci fosse una proprietà da impostare sul controllo del browser - questo sarebbe più semplice quando l'utente non ha i permessi del registro, anche se questo è meno di un problema in HKEY_CURRENT_USER (la chiave funziona anche nel punto equivalente sotto HKEY_LOCAL_MACHINE). – Anthony
FYI, 'FEATURE_NATIVE_DOCUMENT_MODE' è stato superato da' FEATURE_BROWSER_EMULATION'. –