web-dev-qa-db-fra.com

Comment déterminer pourquoi un script Greasemonkey n'est pas en cours d'exécution

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?

31
Jesper Rønn-Jensen

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

5
Santi

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é.

34
Myrddin Emrys

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.

5
Keir Finlow-Bates

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/.

5
Chuck Simmons

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.

5
Bernát

Assurez-vous que Greasemonkey est activé en premier lieu:

4
Lenar Hoyt

De plus, la syntaxe de @include doit avoir un seul motif correspondant. Si vous en voulez un autre, ajoutez un autre @include ligne.

2
Christophe

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.

1
Noumenon

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.

1
zede