Ein dynamisch hinzugefügtes Skript wird im Skriptabschnitt des Debuggers des Browsers nicht angezeigt.
Erläuterung:
Ich muss verwenden und habe verwendet
if( someCondition == true ){
$.getScript("myScirpt.js", function() {
alert('Load Complete');
myFunction();
});
}
damit myScript.js unter bestimmten Bedingungen dynamisch geladen werden kann ... Und myFunction kann erst aufgerufen werden, nachdem das gesamte Skript geladen wurde ...
Browser zeigen die dynamisch geladenen myScript.js jedoch nicht im Skriptbereich ihres Debuggers an.
Gibt es einen anderen Weg, um alle Ziele zu erreichen, der es einem ermöglicht, ein dynamisch geladenes Skript dort im Browser selbst zu debuggen?
javascript
debugging
dynamic
loaded
TwiToiT
quelle
quelle
debugger;
diese Option, um das dynamisch geladene Skript automatisch zu stoppen. Siehe javascript.info/debugging-chromeAntworten:
Sie können Ihrem dynamisch geladenen Skript einen Namen geben, der im Chrome / Firefox-JavaScript-Debugger angezeigt wird. Dazu platzieren Sie einen Kommentar am Ende des Skripts:
Diese Datei wird dann auf der Registerkarte "Quellen" als angezeigt
filename.js
. Nach meiner Erfahrung können Sie \ 's im Namen verwenden, aber ich bekomme merkwürdiges Verhalten, wenn ich /' s verwende.Weitere Informationen finden Sie unter: Haltepunkte in der dynamischen JavaScript- Ablehnung von // @ sourceurl
quelle
Sie können
//# sourceURL=
und//# sourceMappingURL=
am Ende Ihrer Skriptdatei oder Ihres Skript-Tags verwenden.HINWEIS:
//@ sourceURL
und//@ sourceMappingURL
sind veraltet.quelle
Ich habe versucht, "// # sourceURL = filename.js" zu verwenden, das vom OP als Problemumgehung vorgeschlagen wurde, aber es wurde für mich immer noch nicht im Quellenbedienfeld angezeigt, es sei denn, es war bereits in meinen Registerkarten vorhanden es gab eine Ausnahme.
Codierung eines "Debuggers"; Linie zwang es, an dieser Stelle zu brechen. Sobald es sich in meinen Registerkarten im Quellenbedienfeld befand, konnte ich wie gewohnt Haltepunkte setzen und den "Debugger" entfernen. Linie.
quelle
debugger;
, und DevTools musste geöffnet sein, während das Skript geladen wurde.//# sourceURL=browsertools://yourdomaingoeshere.com/action-openuwws.js
Beachten Sie, dass die Quelldatei, die auf diese Weise auf der Registerkarte Quellen angezeigt wird, in der Gruppe (keine Domäne) angezeigt wird. Wenn Sie sie debuggen möchten, müssen Sie eine
debugger;
Zeile in Ihren Code einfügen und diese Zeile ausführen lassen (normalerweise um den Beginn der Ausführung Ihrer Quelldatei) und fügen Sie dann Ihre Haltepunkte hinzu, wo immer Sie möchten.Wenn Sie Produktionsphasen debuggen, in denen
debugger;
der Code wahrscheinlich keine Zeilen enthält, können Sie dies erreichen, indem Sie mit CharlesProxy eine lokale Zuordnung zu Ihrer "neuen Kopie der Quelldatei mit eingefügter Debbuger-Zeile" erstellen.quelle
Wenn ich versuche, solche Dinge im IE aufzuspüren, öffne ich die Entwicklungswerkzeuge (F12) und finde dann mithilfe der folgenden Zeile in der Konsole heraus, wo der Haltepunkt platziert werden soll:
Dadurch wird zur Registerkarte Debugger gewechselt, auf der Sie
myFunction()
den Haltepunkt festlegen und festlegen können.quelle