risposta

14

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.

+0

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

+0

FYI, 'FEATURE_NATIVE_DOCUMENT_MODE' è stato superato da' FEATURE_BROWSER_EMULATION'. –

4

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?

+0

penso che il 'WebBrowser' di controllo e il browser stand-alone si comportano diversamente in questo caso. –

+2

Sembra, sì. Modifica il titolo della domanda per renderlo più specifico. –

3

Si noti che sono stati apportati alcuni cambiamenti dalla versione beta, le chiavi di registro sono state rinominate, ecc. Read more here.

24

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.

+0

meta http-equiv = "X-UA-Compatible" content = "IE = 8" /> – Elijah

+0

Il tag precedente è stato barrato dal mio post. Basta aggiungere la parentesi angolare di apertura. – Elijah

+0

Basta circondare il tuo meta tag con i backtick, in questo modo: ''. –

0

Questo ha il codice vero e proprio fare a livello di codice questo e gestisce fino a IE11 finora:

C# webbrowser Ajax call

Problemi correlati