Question

Je souhaite utiliser IE8 en tant que contrôle WebBrowser dans une application C #. Comment puis-je désactiver & Quot; le mode quirks & Quot; et forcer IE à se conformer aux normes (dans la mesure où il est mis en œuvre)?

Était-ce utile?

La solution

Je pense que le problème auquel vous êtes confronté est décrit dans IEBlog: Modes de rendu du contrôle WebBrowser dans IE8 :

  

Alors que les webmasters peuvent facilement modifier   leur site pour rendre correctement dans le   nouvelle version d'IE, nombreux logiciels   les vendeurs n'ont pas les ressources pour   pousser instantanément de nouvelles versions de   leurs applications à jour   pages internes.   Afin de garantir que ces existants   les applications restent en ordre de marche,    IE8 rend les pages en cours d'exécution dans   instances du contrôle WebBrowser dans   Mode Normes IE7 par défaut.

Il convient de noter ici que les commentaires sur la page indiquent que le commentaire ci-dessus est incorrect et que & "; IE8 restitue les pages exécutées dans des instances du contrôle WebBrowser en mode IE7 Strict OU en mode Quirks par défaut , en fonction du doctype de la page. "

La solution est la suivante:

  

Quand un exécutable charge une instance   du contrôle WebBrowser, il analyse le   registre pour vérifier si le   l'exécutable veut les normes IE7 ou IE8   Mode standard.

     

...

     

Pour exécuter l'insertion en mode Normes IE8   la valeur de registre suivante:

     

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

     

"MyApplication.exe"=dword:13880

     

Dans ces deux cas,   MyApplication.exe doit être remplacé   avec le nom de l'exécutable   exécutera des contrôles WebBrowser dans   un mode spécifié.

Cela ressemble donc au " programmatique " La solution consiste à écrire dans le registre une clé indiquant que vous souhaitez utiliser le mode Normes IE8 pour les WebBrowser contrôles de votre application spécifique.

Autres conseils

Si vous ne souhaitez pas utiliser la technique de la clé de registre, vous pouvez insérer la balise suivante:

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

Le " contenu " attribut des forces de rendu dans différents modes.

La dernière fois que j'ai entendu parler était que IE8 utiliserait mode standard par défaut . Voyez-vous un problème réel avec la dernière version bêta? Etes-vous sûr de commencer par le rendu en mode quirks, sans qu'un utilisateur ne clique explicitement sur bouton de visualisation de la compatibilité ?

Veuillez noter que quelques modifications ont été apportées depuis la version bêta, les clés de registre ont été renommées, etc. Plus d'informations ici .

Ceci a le code réel pour le faire par programme et gère jusqu'à IE11 jusqu'à présent:

appel Ajax pour le navigateur Web c #

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top