La tâche de mon script utilisateur est assez simple: écouter les requêtes XHR via un pont XHR, manipuler les données reçues et les renvoyer. Tout se passe de manière transparente, bien sûr.Problème d'interception des requêtes AJAX (XHR) du script GreaseMonkey
je suis tombé sur cette réponse How can I intercept XMLHttpRequests from a Greasemonkey script? sur le SO - qui fournit les éléments suivants bout de code:
(function(open) {
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
this.addEventListener("readystatechange", function() {
console.log(this.readyState);
}, false);
open.call(this, method, url, async, user, pass);
};
})(XMLHttpRequest.prototype.open);
Le code fonctionne comme prévu lorsqu'il est poussé par Firebug. Cependant, il ne fait rien dans un script Greasemonkey.
sur d'autres recherches, je suis tombé sur une autre réponse: how intercept xhr with greasemonkey - qui mentionne que:
Greasemonkey et Firefox 3.x ne prend pas en charge le -property « prototype ». S'il vous plaît voir le billet suivant pour plus d'informations: http://greasemonkey.devjavu.com/ticket/164
J'ai deux questions de base:
- s'appliquent cette loi à Fx v3.5.x ainsi que? (Note: Le lien du ticket sur devjavu.com n'est pas accessible)
- Que signifie la signature
(function(){})()
en Javascript. (Veuillez supporter, je ne suis pas un expert en JS avancé).
Suite à la réponse de Tomasz (à Q # 2), voici un pointeur pour les autres: http://www.hunlock.com/blogs/Functional_Javascript#quickIDX5 – Jumper