4 votes

Suppression de l'erreur script dans IE8 (C++)

Je veux empêcher IE d'afficher les boîtes de dialogue d'erreur JS. J'ai lu que cela pouvait être fait en paramétrant ScriptErrorsSuppressed = true.

Où dois-je le définir exactement dans IWebBrowser2 ?

Merci

6voto

global05 Points 151

Il suffit d'utiliser mettre_silencieux méthode.

m_pWebBrowser->put_Silent(VARIANT_TRUE);

1voto

Ranjith Points 11

Faire des changements dans les deux HKEY_CURRENT_USER y HKEY_LOCAL_MACHINE chemins.

Software\\Microsoft\\Internet Explorer\\Main

RegSetValueEx (hKey, LPCSTR("Disable Script Debugger"), 0, REG_SZ, (BYTE*) "yes", 3);

RegSetValueEx (hKey, LPCSTR("DisableScriptDebuggerIE"), 0, REG_SZ, (BYTE*) "yes", 3);

1voto

prcarp Points 11

Comme nous l'avons mentionné précédemment, utilisez le put_Silent() pour activer ou désactiver le signalement des erreurs.

Par exemple, si vous utilisez un CDHtmlDialog mettez ça dans votre OnInitDialog() :

m_pBrowserApp->put_Silent(VARIANT_TRUE);

et le mettre avant le site LoadFromResource() appeler.

Faites attention cependant car cela supprimera beaucoup plus de messages que les simples erreurs JavaScript. (Pensez aux notifications de certificats SSL).

0voto

Lou Franco Points 48823

Les documents que vous lisez font référence à ce que vous pouvez faire si vous intégrez un panneau de rendu HTML IE dans votre propre application. Ils vous permettent de modifier le comportement de ce volet.

Si vous avez fait cela, vous pouvez alors utiliser COM pour interroger une interface IWebBrowser2 à partir du composant.

Plus d'informations ici :

http://support.microsoft.com/kb/196340

Et voici comment gérer les erreurs :

http://support.microsoft.com/kb/261003

Je soupçonne que ce n'est pas ce que vous essayez de faire, et que vous créez simplement une application web. Dans ce cas, vous devez

  1. Corrigez vos erreurs JS
  2. Mettez tout votre code JS dans des blocs try/catch. Ainsi, vous n'obtiendrez pas de dialogues JS, mais vous devrez gérer l'erreur vous-même.

0voto

Heinrich Ulbricht Points 6425

Le moyen le plus simple et le plus rapide serait d'utiliser un état global pour résoudre un problème local et de modifier le registre de la façon suivante aquí (bien que Raymond désapprouverait de le faire). Cela désactive essentiellement les erreurs script entièrement pour l'utilisateur actuellement connecté.

Résumé :

  • Clé de registre : HKEY_CURRENT_USER \Software\Microsoft\Internet Explorer \Main
  • Nom de la valeur : Désactiver le débogueur script
  • Type de données : REG_SZ (valeur de la chaîne)
  • Données de valeur : oui

La solution plus complexe consisterait à mettre en œuvre IOleCommandTarget comme l'a déjà fait remarquer Lou .

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