Domanda

Voglio usare IE8 come controllo WebBrowser in un'applicazione C #. Come posso disabilitare & Quot; quirks mode & Quot; e forzare IE a conformarsi agli standard (nella misura in cui è implementato)?

È stato utile?

Soluzione

Penso che il problema che stai affrontando sia descritto in IEBlog: modalità di rendering del controllo WebBrowser in IE8 :

  

Mentre i webmaster possono facilmente modificarsi   il loro sito per renderizzare correttamente nel   nuova versione di IE, molti software   i fornitori non hanno le risorse per   espelle istantaneamente nuove versioni di   le loro applicazioni con aggiornate   pagine interne.   Al fine di garantire che questi esistenti   le domande rimangono funzionanti,    IE8 esegue il rendering delle pagine in esecuzione all'interno   istanze del controllo WebBrowser in   Modalità standard IE7 per impostazione predefinita.

Qui dovrei notare che i commenti sulla pagina dicono che quanto sopra non è corretto e che " IE8 esegue il rendering delle pagine in esecuzione all'interno di istanze del controllo WebBrowser in Modalità IE7 Strict O Modalità Quirks per impostazione predefinita , a seconda del tipo di pagina. "

La soluzione è la seguente:

  

Quando un eseguibile carica un'istanza   del controllo WebBrowser esegue la scansione di   registro per verificare se il file   eseguibile vuole standard IE7 o IE8   Modalità standard.

     

...

     

Per eseguire l'inserimento in modalità standard IE8   il seguente valore di registro:

     

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_NATIVE_DOCUMENT_MODE]

     

"MyApplication.exe"=dword:13880

     

In entrambi questi casi,   MyApplication.exe deve essere sostituito   con il nome dell'eseguibile che   eseguirà i controlli WebBrowser in   una modalità specificata.

Quindi suona come " programmatico " la soluzione è scrivere una chiave nel registro dicendo che si desidera la modalità standard IE8 per WebBrowser controlli nella propria applicazione specifica.

Altri suggerimenti

Se non si desidera utilizzare la tecnica della chiave di registro, è possibile inserire il seguente tag:

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

Il " contenuto " l'attributo forza il rendering in varie modalità.

L'ultima volta che ho sentito dire che IE8 avrebbe usato modalità standard di default . Stai riscontrando un problema reale con l'ultima versione beta? Sei sicuro che il rendering sia in modalità strane per cominciare, senza che un utente colpisca esplicitamente pulsante di visualizzazione della compatibilità ?

Si noti che sono state apportate alcune modifiche dalla versione beta, le chiavi di registro sono state rinominate ecc. Leggi di più qui .

Questo ha un codice reale per farlo a livello di codice e gestisce fino a IE11 finora:

C # webbrowser Ajax call

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top