Est-ce que quelqu'un sait comment gérer et annuler les demandes JavaScript dans IE? Fondamentalement, je suis intéressé par une telle fonctionnalité pour le contrôle C# WebBrowser. Le but ici est de gérer les requêtes javascript/ajax sur internet et si l'URL de la requête correspond à un filtre, alors l'annuler. Pensez-y comme une sorte de bloqueur de publicités. Mais toute solution ira bien parce que je pense que je serai capable de l'utiliser en quelque sorte dans mon projet. Ou peut-être savez-vous comment faire avec un autre navigateur/wrapper? J'apprécierais toute aide.Annuler les demandes javascript dans IE
Répondre
Si vous faites référence à des appels ajax, cela dépend de la façon dont vous effectuez l'appel. Si vous faites l'appel à l'aide jquery par exemple, alors un exemple de la façon dont l'annuler est ici:
Abort Ajax requests using jQuery
Si vous faites l'appel directement à l'aide et de l'objet XMLHttpRequest puis consultez la méthode abort ici:
Donc, en gros, vous appelez la méthode kill/abort appropriée, et ensuite les rappels de handler ou d'erreur que vous avez attachés à l'appel ajax ne devraient jamais être appelés.
Si vous voulez bloquer les appels ajax dans un contrôle WebBrowser, il semble y avoir un moyen, mais c'est un peu compliqué. Voir la dernière partie de cette discussion:
http://social.msdn.microsoft.com/Forums/en/winforms/thread/c7c9a6f9-9875-4d8b-8c87-81f2c423fa6a
Fondamentalement, vous pouvez modifier le HtmlDocument concerné de prendre les appels ajax en premier lieu. Cependant, il semble que vous ne puissiez pas désactiver javascript pour une session IE donnée (donc pas seulement pour celle du contrôle WebBrowser), c'est un paramètre global.
Je ne fais pas ces appels. Les sites, que je charge dans le contrôle WebBrowser, le font. – clumpter
Je pense que vous êtes coincé alors. Apparemment, WebBrowser ne vous permet même pas d'activer/désactiver le javascript (http://social.msdn.microsoft.com/Forums/en/winforms/thread/c7c9a6f9-9875-4d8b-8c87-81f2c423fa6a), donc je ne vois pas comment vous pouvez intercepter un appel javascript dans le contrôle WebBrowser. –
Mais devrait être un moyen. Jetez un oeil sur la barre d'outils des développeurs IE 9. Il peut les gérer comme le fait Firebug. – clumpter
Vous ne savez pas à quoi vous faites référence par "Requêtes JavaScript" mais ... Si vous utilisez le contrôle du navigateur Web dans .Net 3.5+ Framework, vous pouvez intercepter le code HTML envoyé au contrôle et gratter le JavaScript off, mais c'est assez clugey.
Si vous êtes en mesure d'éditer le JavaScript directement, vous pouvez remplacer la fonction. Donc, si la fonction a été écrit:
var alertUser = function(){alert('Hello, silly user.');}
Vous pouvez écrire alertUser = function(){};
qui est essentiellement le mettre à une fonction vide de sorte qu'il ne sera pas l'erreur quand il est appelé; mais au lieu de ne rien faire.
Si vous voulez une fonction « annuler » vous suffit d'ajouter un return;
Merci pour votre aide, mais ce n'est pas ce que je dois. – clumpter
Qu'est-ce qu'un « javascript demande » et ce qui se passe lorsque vous « annulez » il? – AndreKR
Qu'entendez-vous par "demande JavaScript"? Parlez-vous des demandes AJAX? – casablanca
J'héberge le contrôle .NET WebBrowser dans l'application WinForms. Certains sites chargent des données à partir du code javascript/ajax. Je souhaite pouvoir annuler ces appels. Mais je ne sais pas comment les gérer. – clumpter