Un script ajouté dynamiquement n'apparaît pas dans la section des scripts du débogueur du navigateur.
Explication:
J'ai besoin d'utiliser et j'ai utilisé
if( someCondition == true ){
$.getScript("myScirpt.js", function() {
alert('Load Complete');
myFunction();
});
}
afin que myScript.js puisse être chargé dynamiquement en remplissant une condition ... Et myFunction ne peut être appelé qu'après avoir chargé tout le script ...
Mais les navigateurs n'affiche pas le myScript.js chargé dynamiquement dans la section de script de leur débogueur.
Existe-t-il un autre moyen d'atteindre tous les objectifs qui permettront de déboguer un script chargé dynamiquement dans le navigateur lui-même?
javascript
debugging
dynamic
loaded
TwiToiT
la source
la source
debugger;
pour arrêter automatiquement dans le script chargé dynamique, voir javascript.info/debugging-chromeRéponses:
Vous pouvez attribuer un nom à votre script chargé dynamiquement afin qu'il s'affiche dans le débogueur JavaScript Chrome / Firefox. Pour ce faire, placez un commentaire à la fin du script:
Ce fichier apparaîtra ensuite dans l'onglet "Sources" sous la forme
filename.js
. D'après mon expérience, vous pouvez utiliser des \ dans le nom, mais j'obtiens un comportement étrange si vous utilisez des /.Pour plus d'informations, voir: Points d'arrêt dans la dépréciation JavaScript dynamique de // @ sourceurl
la source
Vous pouvez utiliser
//# sourceURL=
et//# sourceMappingURL=
à la fin de votre fichier de script ou de votre balise de script.REMARQUE:
//@ sourceURL
et//@ sourceMappingURL
sont obsolètes.la source
J'ai essayé d'utiliser le "// # sourceURL = filename.js" qui a été suggéré comme solution de contournement par l'OP, mais il n'apparaissait toujours pas pour moi dans le panneau Sources à moins qu'il n'existait déjà dans mes onglets d'une fois il a produit une exception.
Codage d'un "débogueur"; la ligne l'a forcé à se casser à cet endroit. Ensuite, une fois qu'il était dans mes onglets dans le panneau Sources, je pouvais définir des points d'arrêt comme d'habitude et supprimer le "débogueur"; ligne.
la source
debugger;
, et DevTools devait être ouvert pendant le chargement du script.//# sourceURL=browsertools://yourdomaingoeshere.com/action-openuwws.js
Notez que le fichier source apparaissant dans l'onglet sources de cette façon apparaîtra dans le groupe (pas de domaine) et, au cas où vous voudriez le déboguer, vous devrez ajouter une
debugger;
ligne dans votre code, faire que cette ligne soit exécutée (généralement à le début de l'exécution de votre fichier source) puis ajoutez vos points d'arrêt où vous le souhaitez.Dans le cas où vous déboguez des étapes de production, où vous n'aurez probablement aucune
debugger;
ligne dans votre code, vous pouvez y arriver en faisant une carte locale avec CharlesProxy vers votre "nouvelle copie du fichier source avec la ligne de débogage insérée".la source
Lorsque j'essaie de suivre ce genre de choses dans IE, j'ouvre les outils de développement (F12), puis je trouve où placer le point d'arrêt en utilisant la ligne suivante dans la console:
Cela bascule vers l'onglet du débogueur où vous pouvez entrer
myFunction()
et définir le point d'arrêt.la source