J'essaie d'obtenir un script Greasemonkey à exécuter sur une page. Mais ce n'est pas le cas.
Comment déboguez-vous les scripts?
Quelles sont les plus petites étapes possibles pour démarrer un nouveau script Greasemonkey?
vous pouvez écrire des journaux partout dans vos scripts pour obtenir de meilleures traces de ce qui est fait si vous y êtes
GM_log("Hello, World!");
http://wiki.greasespot.net/GM_log
Plus d'informations: http://wiki.greasespot.net/Greasemonkey_Manual:Other_Useful_Tools#JavaScript_Console
Un autre conseil: jetez un œil à l'ensemble du wiki de greasemonkey. Ils ont beaucoup de bonnes choses là-dedans: http://wiki.greasespot.net/Main_Page
Lorsque je commençais avec des scripts utilisateur, ma première erreur n'utilisait pas de caractères génériques.
// Broken:
// @include https://www.example.com/
// Working:
// @include https://www.example.com/*
C'est le moyen le plus simple pour que le script ne s'applique même pas et ne s'exécute donc pas du tout. De plus, assurez-vous de vérifier les erreurs de syntaxe; un point-virgule mal placé peut empêcher l'analyse du script et il est donc ignoré.
Dans Firefox, ouvrez Outils> Console d'erreurs et regardez-la pendant que vous chargez la page. Si vous êtes submergé par les avertissements de la page, vous pouvez filtrer les erreurs, ce qui met souvent en évidence votre problème de script.
Mon script greasemonkey fonctionnait; J'ai ajouté une ligne; il a cessé de fonctionner; J'ai supprimé la ligne; cela ne fonctionnait toujours pas.
J'ai déterminé que greasemonkey avait installé un script updater.php
Cassé lorsque j'ai rechargé le script avec la nouvelle ligne ajoutée. Le rechargement de l'ancien script a conservé la version cassée du script updater.php
. J'ai finalement trouvé un message d'erreur faisant référence au script updater.php
Dans ma console Web Firefox. J'ai remplacé le script updater.php
Par un fichier contenant un commentaire après avoir chargé la nouvelle version du script, et mon script a commencé à être exécuté.
Sur mac, mon updater.php
Était dans: /Users/csimmons/Library/Application Support/Firefox/Profiles/81ri7k71.default/gm_scripts/Extended_LoU_Tweak
Vous pourrez peut-être trouver un fichier updater.php
Similaire dans votre répertoire de profil par défaut de Firefox gm_scripts/
.
Pour moi, il y avait une erreur de syntaxe dans le script et Greasemonkey n'a pas donné de message d'erreur. Le copier-coller du script sur la console JS a révélé le secret.
Assurez-vous que Greasemonkey est activé en premier lieu:
De plus, la syntaxe de @include
doit avoir un seul motif correspondant. Si vous en voulez un autre, ajoutez un autre @include
ligne.
Si l'URL d'une page est définie avec Javascript au lieu de naviguer (comme Instagram donnant à ses fenêtres contextuelles une URL de permalien), Greasemonkey affichera le script comme étant en cours d'exécution mais il ne démarrera pas. Essayez de recharger l'URL et de voir si elle va réellement sur la même page. Sinon, vous devrez faire correspondre l'URL de la page d'accueil au lieu de l'URL contextuelle.
J'ai aussi eu ce problème; ce fut la solution pour moi:
Vérifiez la partie (et modifiez la partie délicate) du code sur lequel je travaillais quand cela se produit
désinstaller et réinstaller GreaseMonkey
alors j'ai un vrai rapport d'erreur
EDIT: Aujourd'hui, le problème vient plus souvent que d'habitude (nouvelle version?) Il semble que les outils Web de Firefox soient combat avec greasemonkey ou moteur JS pour messages d'erreur.
Donc, lorsque vous cherchez quelque part (ctrl + alt + k), le message d'erreur apparaît ailleurs (essayez d'ouvrir l'autre console), c'est comme un jeu amusant.