Comment puis-je supprimer les erreurs de script lors de l'utilisation de WPF contrôle WebBrowser?
J'ai une application WPF qui utilise WPF contrôle WebBrowser pour afficher des pages web intéressantes pour nos développeurs sur un écran plat d'affichage (comme un flux d'actualités).
Le problème est que je reçois parfois une erreur de script HTML qui affiche un méchant IE message d'erreur me demandant si je voudrais à "arrêter l'exécution des scripts sur cette page". Est-il un moyen de supprimer ce contrôle d'erreur?
REMARQUE: j'ai désactivé le débogage de script dans internet explorer, les paramètres déjà.
- Encore une autre de deux lignes de la solution est ici: stackoverflow.com/a/18289217/1768303
Vous devez vous connecter pour publier un commentaire.
Le problème ici est que le WPF
WebBrowser
ne pas mettre en œuvre cette propriété que dans la 2.0 contrôle.Votre meilleur pari est d'utiliser un
WindowsFormsHost
dans votre application WPF et de l'utilisation de la 2.0WebBrowser
propriété:SuppressScriptErrors
. Même alors, vous aurez besoin de l'application pour être en pleine confiance pour le faire.Pas ce qu'on pourrait appeler l'idéal, mais c'est à peu près la seule option actuellement.
not-possible
'sVoici une solution que j'ai fait avec de la réflexion. Résout le problème 🙂
Je le lance à la Navigué événement, comme il semble l'objet activeX n'est pas disponible jusqu'alors.
Ce qu'il fait est définir le .Le silence de la propriété sur le sous-jacent objet activeX. Qui est le même que l' .ScriptErrorsSuppressed de la propriété qui est le Windows équivalent de formes.
Une meilleure version qui peut être exécuté à tout moment et non pas après la .Navigué événement:
Si tous les problèmes avec le deuxième exemple, essayez d'échanger les wb.Chargé avec des wb.Navigué.
Viens de trouver à partir de une autre question, c'est à la fois élégante et fonctionne très bien.
WebBrowser_OnNavigating
événement et ça marche!!! +1Je voulais ajouter un commentaire à @Alkampfer réponse, mais je n'ai pas assez de réputation. Cela fonctionne pour moi (Windows 8.1, NET 4.5):
Cet exemple de code est écrit en F#, mais il est assez clair de ce qu'il fait.
J'ai aussi trouvé un moyen intéressant de désactiver les erreurs JavaScript. Mais vous avez besoin d'utiliser au moins .Net Framework 4.0 en raison de l'utilisation élégante de type dynamique.
Vous devez vous abonner à la LoadCompleted événement de la WebBrowser élément:
Après que vous avez besoin d'écrire un gestionnaire d'événement qui ressemble à ci-dessous:
Vérifier le code ci-dessous pour supprimer les erreurs de script pour WPF contrôle de navigateur..
Alors que, Si vous utilisez Winforms navigateur Web avec les winforms hôte.. vous avez une propriété "SuppressScriptErrors" défini à true
J'ai ce problème dans le passé et finalement résolu avec une injection d'un script Javascript qui suppriment la gestion des erreurs. Espérons que cela pourrait vous aider aussi.
Désactiver les erreurs Javascript dans WEbBrowsercontrol
vous pouvez utiliser cette astuce
vb.net
et dernier lib :