9 votes

Comment définir FEATURE_BROWSER_EMULATION en mode IE8 ?

Nous utilisons un navigateur SWT intégré dans une application Java. Le navigateur SWT englobe un objet IE8 WebBrowser Control. Je me heurte à un problème bien connu : par défaut, le WebBrowser Control utilise le mode IE7 au lieu du mode IE8. (Voir http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx )

Conformément à cet article et à d'autres, j'essaie de définir la valeur de registre FEATURE_BROWSER_EMULATION pour mon application afin que le navigateur passe par défaut en mode IE8, mais je n'ai qu'un succès mitigé. Le réglage sur le mode standard IE8 avec la valeur 8000 ne fonctionne pas, mais le réglage sur le mode standard IE8 "forcé" avec la valeur 8888 fonctionne.

Je teste cela en chargeant la page dans le navigateur SWT, puis en exécutant le javascript.

browser.execute("alert(document.documentMode);");

Le résultat est 7 si la valeur de la clé n'existe pas ou est 8000. Le résultat est 8 si la valeur de la clé est 8888. L'URL que je teste est http://stackoverflow.com qui comprend les éléments suivants

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Quelqu'un sait-il ce que je fais mal ?

6voto

Kamyar Gilak Points 1025

Vérifiez d'abord cette solution :

Concernant le contrôle IE9 WebBrowser

si elle ne répond pas à votre besoin, voici la solution du registre


Pour exécuter un contrôle WebBrowser en mode standard IE11, utilisez la nouvelle valeur suivante dans le registre :

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 11000 (Hex: 0x2af8)

Pour exécuter un contrôle WebBrowser en mode standard IE10, utilisez la nouvelle valeur suivante dans le registre :

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 10000 (Hex: 0x2710)

Pour exécuter un contrôle WebBrowser en mode standard IE9, utilisez la nouvelle valeur suivante dans le registre :

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 9000 (Hex: 0x2328)

Pour exécuter un contrôle WebBrowser en mode standard IE8, utilisez la nouvelle valeur suivante dans le registre :

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 8000 (Hex: 0x1F40)

Pour fonctionner en mode standard d'IE7, utilisez la valeur de registre suivante :

32 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

64 bits: [(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
 "DesignU.exe" = dword 7000 (Hex: 0x1B58)

5voto

tough_lion Points 51
  1. HKCU \Software\Microsoft\Internet Explorer \Main\FeatureControl\FEATURE_BROWSER_EMULATION
  2. Ajoutez le nom de votre processus puis définissez la valeur du DWORD à 9999.

1voto

jakeC Points 11

Vérifiez les paramètres d'affichage de la compatibilité dans l'IE autonome (Outils > paramètres d'affichage de la compatibilité). Votre page figure-t-elle dans la liste des "sites à afficher dans la vue de compatibilité" ou la case "afficher tous les sites dans la vue de compatibilité" est-elle cochée ? Avec cette valeur de registre fixée à 8000, le contrôle du navigateur Web respecte toujours les paramètres d'affichage de compatibilité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X