Je n'ai pas trouvé le moyen de déboguer les scripts Greasemonkey avec l'extension Firebug.
Est-ce que quelqu'un sait comment faire ça ?
Merci.
Je n'ai pas trouvé le moyen de déboguer les scripts Greasemonkey avec l'extension Firebug.
Est-ce que quelqu'un sait comment faire ça ?
Merci.
Updatier: Le Mene+Shuman correctif est maintenant cassé avec Firefox 30 et Firebug 2. Firefox 31 peut fournir des solutions de contournement (étudiera). Dans l'intervalle, l'utilisation de la "solution de contournement Générale les stratégies énumérées ci-dessous.
Mise à jour: Cette réponse est aujourd'hui obsolète.
Si vous ouvrez about:config
et
ensemble extensions.firebug.filterSystemURLs
de false
ensuite, vous pouvez utiliser Firebug pour déboguer le script Greasemonkey comme toutes les autres.
Cela fonctionne indépendamment de l' @grant
mode.
Voir Mene la réponse -- avec une aide de la part de Shuman.
Vieille réponse:
Parce que Greasemonkey opère dans un bac à sable, Firebug ne peut pas le voir. Il n'y a pas de moyen facile de contourner cela.
Solution de contournement générale des stratégies:
Test de toutes les parties d'un script GM qui n'utilisent pas de GM_
fonctions, dans Firebug la console JavaScript de première. Réduire au minimum l'utilisation de GM_
fonctions et de ne pas utiliser GM_log()
à tous.
Tous de de Firebug console
des fonctions de l'excellent travail à partir de l'intérieur d'un script GM.
Courant Firefox et Firebug peut désormais actuel de débogage de scripts Greasemonkey juste comme n'importe quel autre javascript. Il suffit de trouver votre *.user.js
script dans le menu déroulant. La console fonctionne également.
Cela fonctionne au moins sur Firefox 28.0 et Firebug 1.12.7; je n'ai pas essayé les versions antérieures.
Remarque: pour le faire fonctionner, vous avez probablement à fixer extensions.firebug.filterSystemURLs
de faux. Voir "le Profilage des scripts Greasemonkey" dans Firebug, bug tracker. (Merci à Shuman)
var e = document.createElement("script");
e.src = 'http://www.xxxxxxxx.com/yyyyyyyy.js';
e.type="text/javascript";
document.getElementsByTagName("head")[0].appendChild(e);
vous pouvez l'ajouter à votre xxx.user.js et l'installer dans greasemonkey.
Ensuite, vous pouvez déboguer votre js comme vous le souhaitez.
Chromebug peut afficher des scripts en mode bac à sable, http://getfirebug.com/wiki/index.php/Chromebug_User_Guide , mais je ne l’ai pas encore essayé sur Greasemonkey.
Chargez votre script principal en externe, au lieu de l'exécuter via GM. Donc, vous utilisez simplement GM pour injecter le script.
C'est un peu un hybride entre les solutions @bigml et @ Yuval et il utilise jquery. Cela fonctionne aussi dans les cadres.
// ==UserScript==
// @name My GM script
// @include The website I want this to run on
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// ==/UserScript==
$(document).ready(function() {
// fetch jquery dependent scripts using $.getScript()
});
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.