Répondre

14

Je pense que le problème que vous rencontrez est décrit dans IEBlog: WebBrowser Control Rendering Modes in IE8:

Alors que les webmasters peuvent facilement modifier leur site pour rendre correctement dans la nouvelle version de IE, de nombreux fournisseurs de logiciels n'ont pas ressources à instantanément pousser de nouvelles versions de leurs applications avec mis à jour pages internes. Afin de garantir que ces applications existantes restent en état de fonctionnement, IE8 affiche les pages exécutées dans instances du contrôle WebBrowser en mode standard IE7 par défaut.

Ici, je dois souligner que les commentaires sur la page disent que ce qui précède est incorrect, et que «IE8 rend les pages en cours d'exécution dans les instances du contrôle WebBrowser dans IE7 mode, strict ou Quirks par défaut, selon le doctype de la page. "

La solution est la suivante:

Lorsqu'un exécutable charge une instance du contrôle WebBrowser il scanne le registre pour vérifier si l'exécutable veut normes IE7 ou IE8 mode standard.

...

Pour exécuter dans les normes IE8 en mode insertion 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 devrait être a remplacé avec le nom de l'exécutable que exécutera WebBrowser cont rols en un mode spécifié.

Il semble donc que la solution « programmatique » est d'écrire une clé dans le registre que vous voulez dire le mode Standards IE8 pour WebBrowser contrôles dans votre application spécifique.

+0

Il serait préférable qu'il y ait une propriété à définir dans le contrôle du navigateur - ce serait plus facile si l'utilisateur n'avait pas les permissions de registre, bien que cela soit moins problématique sous HKEY_CURRENT_USER (la clé fonctionne également dans le point équivalent sous HKEY_LOCAL_MACHINE). – Anthony

+0

FYI, 'FEATURE_NATIVE_DOCUMENT_MODE' a été dépassé par' FEATURE_BROWSER_EMULATION'. –

4

Le dernier que j'ai entendu était que IE8 utiliserait standards mode by default. Voyez-vous un problème réel avec la dernière version bêta? Etes-vous sûr que c'est le rendu en mode Quirks pour commencer, sans qu'un utilisateur frappe explicitement le compatibility view button?

+0

Je pense que le 'WebBrowser' contrôle et le navigateur autonome se comportent différemment dans ce cas. –

+2

On dirait, oui. Éditera le titre de la question pour le rendre plus spécifique. –

3

Veuillez noter qu'il y a eu quelques changements depuis la version bêta, les clés de registre ont été renommées, etc. Read more here.

24

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

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

Les forces d'attribut « contenu » rendu dans différents modes.

+0

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

+0

La balise ci-dessus a été rayée de mon message. Ajoutez simplement l'équerre d'ouverture. – Elijah

+0

Juste entourez votre balise meta avec des guillemets, comme ceci: ''. –

Questions connexes