web-dev-qa-db-fra.com

Déboguer le script tampermonkey

Je voudrais déboguer un script tampermonkey avec la console du chrome, mais je ne trouve pas mon script dans la liste ..

enter image description here

Suis-je en train de faire quelque chose de mal, ou simplement les scripts tampermonkey n'apparaissent pas là? Et dans ce cas, comment puis-je le déboguer?

48
thestral

Tampermonkey est simplement une extension qui injecte des scripts passe-partout pour évaluer vos scripts personnalisés, vous pouvez donc déboguer n'importe lequel de ces scripts si vous les trouvez.

Le problème est qu'il évalue les scripts utilisateur comme si quelqu'un appelait eval() dessus, vous verrez donc VM### au lieu de quelque chose de sympa comme myscript.js et vous ne pouvez normalement pas y accéder comme des scripts permanents.

Ajoutez plutôt des lignes de débogueur:

  • Coche des paramètres:

Tableau de bord TamperMonkey -> Paramètres -> Général (Mode de configuration: Avancé) -> Scripts de débogage Tampermonkey general settings w/debug checked

  • Ou, dans votre script utilisateur, ajoutez la ligne:

    debugger;

ainsi: debugger line in userscript

(Faire cela en haut d'un script utilisateur équivaut au paramètre Tampermonkey)

Lorsque vous avez une console ouverte sur une page utilisant le script, elle se met en pause lorsque les lignes du débogueur sont touchées et vous montre votre fichier source (entouré d'un passe-partout tampermonkey).

Qui devrait ressembler à ceci: chrome paused on tampermonkey script

Vous pouvez ensuite instrumenter toutes les autres lignes dont vous avez besoin depuis le débogueur.

Si vous rencontrez des problèmes, vous pouvez également déboguer la logique principale de tampermonkey lui-même en ouvrant l'inspection de la page d'arrière-plan dans les extensions chrome: //. Il imprime de jolis messages pour vous faire savoir ce que vous pouvez utiliser pour sauter dans son code.

69
lossleader