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

StackOverflow https://stackoverflow.com/questions/1410801

  •  05-07-2019
  •  | 
  •  

Question

    

Cette question a déjà une réponse ici:

         

J'essaie de faire exécuter un script Greasemonkey sur une page. Mais ce n’est pas le cas.

Comment déboguez-vous les scripts?

Quelles sont les étapes les plus petites possibles pour démarrer un nouveau script Greasemonkey?

Était-ce utile?

La solution

vous pouvez écrire des journaux partout dans vos scripts pour obtenir de meilleures traces de ce qui est fait dans ces scripts:

GM_log("Hello, World!");

http://wiki.greasespot.net/GM_log

Plus d'infos: http://wiki.greasespot.net/Greasemonkey_Manual:Other_Useful_Tools#JavaScript_Consol

Autre astuce: jetez un coup d’œil au wiki Greasemonkey. Ils ont beaucoup de bonnes choses là-dedans: http://wiki.greasespot.net/Main_Page

Autres conseils

Lorsque j'ai commencé avec les scripts utilisateur, ma première erreur n'était pas l'utilisation 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 le script de ne même pas s’appliquer, et donc de ne pas être exécuté 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 est donc ignoré.

Dans Firefox, ouvrez Outils > Console d'erreur et regardez-le pendant que vous chargez la page. Si vous êtes submergé par les avertissements de la page, vous pouvez filtrer les erreurs, ce qui met encore souvent en évidence votre problème de script.

Mon script greasemonkey fonctionnait; J'ai ajouté une ligne; il a cessé de fonctionner; J'ai enlevé la ligne; cela n'a toujours pas fonctionné.

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 endommagé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 le chargement de la nouvelle version du script, et mon script a commencé à être exécuté.

Sur mac, mon updater.php se trouvait dans: / Utilisateurs / csimmons / Bibliothèque / Application Support / Firefox / Profiles / 81ri7k71.default / gm_scripts / Extended_LoU_Tweak p>

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. Copier-coller le 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 consiste à n'avoir qu'un seul motif correspondant. Si vous en voulez une autre, ajoutez une autre ligne @include .

J'ai eu ce problème aussi; C'était la solution pour moi:

  • Vérifiez la partie (et la modification) délicate du code sur lequel je travaillais quand cela se produisait

  • 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 Firefox se battent avec greasemonkey ou le moteur JS pour obtenir des messages d'erreur .

Ainsi, lorsque vous regardez quelque part (ctrl + alt + k), le message d'erreur apparaît ailleurs (essayez d'ouvrir l'autre console), c'est comme un jeu amusant.

Si l'URL d'une page est définie avec Javascript plutôt qu'en naviguant (par exemple, Instagram donnant à ses fenêtres contextuelles une URL en permalien), Greasemonkey indiquera que le script est en cours d'exécution mais qu'il ne démarre pas. Essayez de recharger l'URL et voir si elle va réellement à la même page. Sinon, vous devrez faire correspondre l'URL de la page d'accueil au lieu de l'URL contextuelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top