web-dev-qa-db-fra.com

Autoriser javascript à s'exécuter sur un navigateur Web Windows Form

Je souhaite utiliser un navigateur Web pour accéder à un site Web qui utilise JavaScript lors du chargement. Je comprends que le navigateur Web est un wrapper de la version installée actuelle d'Internet Explorer. Cependant, le test du site Web sur Internet Explorer ne génère aucune erreur mais ne fonctionne pas si j'utilise le navigateur Web pour accéder au contenu.

J'ai également examiné mes paramètres de sécurité Internet pour m'assurer qu'il est activé.

Le problème que je reçois est;

Error in Web Browser

18
Ryanas

Assez maladroitement, j'ai trouvé la réponse quelques instants après avoir posté cela, mais je pensais que quiconque rencontrant le même problème que moi trouverait du réconfort dans cette réponse;

Il semble que le téléchargement de la dernière version d'Internet Explorer ne soit pas suffisant et vous devez spécifier explicitement la version de IE à utiliser en ajoutant une nouvelle clé de registre.

Correction HTML;

<!DOCTYPE html> 
<html> 
  <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 
    ... other headers
  </head>
  <body>
    ... content
  </body>
</html>  

Via le registre;

Accédez à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION pour les machines 64 bits ou 32 bits uniquement.

Ou accédez à HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION pour 32 bits sur les systèmes 64 bits (cela ne peut pas faire de mal pour ajouter des clés aux deux emplacements si vous en avez. Si vous ne les avez pas, vous pouvez créer les dossiers vous-même).

Créez une nouvelle clé DWORD et nommez-la le nom de votre application, par exemple "myapp.exe", puis modifiez la valeur de la clé. Il existe de nombreuses valeurs différentes que vous pouvez ajouter en fonction de la version IE que vous souhaitez émuler. J'ai entré 11001 (comme une valeur décimale - 0x2AF9 dans HEX) qui émule IE 11 (beaucoup plus de valeurs situées à: http: //msdn.Microsoft.com/en-us/library/ee330730% 28v = vs.85% 29.aspx # browser_emulation ).

Si vous utilisez Visual Studio comme je le suis, vous remarquerez que cette méthode peut même ne pas fonctionner. Cependant, cela fonctionne. Vous devez ouvrir manuellement le fichier .exe à l'aide de l'Explorateur ou du terminal plutôt que d'exécuter le projet sur Visual Studio.

Si vous souhaitez exécuter le programme sur Visual Studio, envisagez d'ajouter une clé pour "myapp.vshost.exe" car elle est utilisée pour le débogage.

Plus d'informations et de sources proviennent de; http: //weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version .

J'espère que cela aide toute personne ayant un problème concernant votre navigateur Web à utiliser peut-être la mauvaise version IE comme wrapper ou que les fonctions ne fonctionnent pas comme prévu.

23
Ryanas
 <!DOCTYPE html> 
<html> 
  <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 
    ... other headers
  </head>
  <body>
    ... content
  </body>
</html>  

Cela fonctionnera, ceci est le résumé de la réponse de Ryan Singh

16
PrathapG