Wenn ich Entwicklertools in Google Chrome öffne, werden alle Arten von Funktionen wie Profile, Zeitleisten und Audits angezeigt, aber grundlegende Funktionen wie das Festlegen von Haltepunkten sowohl in JS-Dateien als auch in HTML- und Javascript-Code fehlen! Ich habe versucht, die Javascript-Konsole zu verwenden, die selbst fehlerhaft ist. Wenn beispielsweise ein JS-Fehler auftritt, kann ich sie nur verlassen, wenn ich die gesamte Seite aktualisiere. Kann jemand helfen?
210
Antworten:
Über die Registerkarte Quellen können Sie dort Haltepunkte in JavaScript setzen. In der Verzeichnisstruktur darunter (mit dem Aufwärts- und Abwärtspfeil) können Sie die Datei auswählen, die Sie debuggen möchten. Sie können einen Fehler beheben, indem Sie auf der rechten Seite derselben Registerkarte auf Fortsetzen klicken.
quelle
<script> your code </script>
Fügen Sie einen Namen hinzu wie:<script> your code //# sourceURL=somename.js </script>
Dies wird in einer Antwort unten besser erklärtSprechen Sie über Code in
<script>
Tags oder in solchen HTML-Tag-Attributen?In beiden Fällen funktioniert das folgende
debugger
Schlüsselwort :NB Chrome pausiert nicht bei
debugger
s, wenn die Entwicklertools nicht geöffnet sind.Sie können auch Eigenschafts-Haltepunkte in JS-Dateien und
<script>
-Tags festlegen :quelle
Sources
stattScripts
jetzt aufgerufen .Sie können Ihrem Skript auch einen Namen geben:
<script> ... (your code here) //# sourceURL=somename.js </script>
Natürlich ersetzen Sie "somename" durch einen Namen;) und dann sehen Sie es im Chrome-Debugger unter "Sources> top> (keine Domain)> somename.js" als normales Skript und können es wie andere Skripte debuggen
quelle
Aktualisieren Sie die Seite mit dem Skript, während die Entwicklertools auf der Registerkarte "Skripte" geöffnet sind. Dadurch wird ein (Programm-) Eintrag in die Dateiliste eingefügt, der den HTML-Code der Seite einschließlich des Skripts anzeigt. Von hier aus können Sie Haltepunkte hinzufügen.
quelle
Ein weiterer intuitiver einfacher Trick zum Debuggen von Skripten in HTML, die von Ajax zurückgegeben werden, besteht darin, console.log ("test") vorübergehend in das Skript einzufügen.
Öffnen Sie nach dem Auslösen des Ereignisses die Registerkarte "Konsole" in den Entwicklertools. Der Link zur Quelldatei wird rechts neben der Debug-Druckanweisung "test" angezeigt. Klicken Sie einfach auf die Quelle (so etwas wie VM4xxx) und Sie können jetzt den Haltepunkt festlegen.
PS: Außerdem können Sie in Betracht ziehen, eine "Debugger" -Anweisung zu setzen, wenn Sie Chrome verwenden, wie dies von @Matt Ball vorgeschlagen wird
quelle
Meine Situation und was ich getan habe, um das Problem zu beheben:
Ich habe eine Javascript-Datei auf einer HTML-Seite wie folgt
: Seitenname: test.html
Wenn ich jetzt den Javascript-Debugger in Chrome eingebe, klicke ich auf die Registerkarte "Skripte" und lasse die Liste wie oben gezeigt fallen. Ich kann deutlich sehen , scripts / common.js jedoch konnte ich nicht die aktuelle HTML - Seite test.html im Drop - down, also konnte ich nicht das eingebettete Javascript debuggen:
Das war verwirrend. Als ich jedoch den veralteten Typ = "text / javascript" aus dem eingebetteten Skript entfernte:
..und die Seite aktualisiert / neu geladen, voila, sie erschien in der Dropdown-Liste und alles war wieder in Ordnung.
Ich hoffe, dies ist hilfreich für alle, die Probleme beim Debuggen von eingebettetem Javascript auf einer HTML-Seite haben.
quelle
type
ein Attribut erforderlich ist. In HTML5 ist dies optional.<div>
mich daran gehindert, den Code im Debugger zu sehenDas Hinzufügen
debugger;
zu meinem Skript hat bei mir funktioniert.quelle
Ich hatte auch das gleiche Problem, wie man JavaScript debuggt, das sich in
<script>
Tags befindet. Aber dann fand ich es unter der Registerkarte Quellen, genannt "(Index)", in Klammern. Klicken Sie auf die Zeilennummer, um Haltepunkte festzulegen.Dies ist Chrome 71.
quelle
Wenn die Registerkarte "Skripte" nicht angezeigt wird, stellen Sie sicher, dass Sie Chrome mit den richtigen Argumenten starten. Ich hatte dieses Problem, als ich Chrome zum Debuggen von serverseitigem JavaScript mit dem Argument startete
--remote-shell-port=9222
. Ich habe kein Problem, wenn ich Chrome ohne Argument starte.quelle
Ich bin auf dieses Problem gestoßen, aber meine Inline-Funktion hatte eine eckige JS-Ansicht. Daher konnte ich beim Laden nicht auf das Inline-Skript zugreifen, um das Debug hinzuzufügen, da nur die index.html auf der Registerkarte "Quellen" des Debuggers verfügbar war.
Dies bedeutete, dass ich beim Öffnen der jeweiligen Ansicht mit meiner Inline (hatte keine Wahl) darauf nicht zugreifen konnte.
Die einzige Möglichkeit, die ich treffen konnte, bestand darin, eine fehlerhafte Funktion oder einen Aufruf in die Inline-JS-Funktion einzufügen.
Meine Lösung beinhaltete:
Das heißt, als ich auf meine Schaltfläche klickte, wurde ich in der Chrome-Konsole aufgefordert.
Das Wichtigste hier war die Quelle dafür:
VM5658:6
Wenn ich darauf klickte, konnte ich durch die Inline gehen und den Haltepunkt für später dort halten.Extrem komplizierter Weg, um es zu erreichen. Aber es hat funktioniert und könnte sich als nützlich erweisen, wenn es um Apps mit einer Seite geht, die Ihre Ansichten dynamisch laden.
Das
VM[n]
hat keinen signifikanten Wert und dasn
on entspricht der Skript-ID. Diese Informationen finden Sie hier: Chrome "[VM]"quelle
Mit Visual Studio (2012) hatte ich das gleiche Problem und der Wechsel zu IIS Express löste das Problem!
Das Attribut des
script
Tags wurdetype
nicht berücksichtigt.Aus irgendeinem Grund bietet der Visual Studio Development Server nicht alles, was Chrome zum Aktivieren der Haltepunkte benötigt.
quelle
Ich weiß, dass es beim Q nicht darum geht,
Firefox
aber ich wollte keine Kopie dieser Frage hinzufügen, um sie einfach selbst zu beantworten.Für Firefox müssen Sie hinzufügen
debugger;
, um das tun zu können, was @ matt-ball für dasscript
Tag vorgeschlagen hat.Sie fügen also in Ihrem Code
debugger
über der Zeile hinzu, die Sie debuggen möchten, und können dann Haltepunkte hinzufügen. Wenn Sie nur die Haltepunkte im Browser festlegen, wird dies nicht gestoppt.quelle
Dies ist eine Erweiterung der obigen Antwort von Rian Schmits . In meinem Fall hatte ich HTML-Code in meinen JavaScript-Code eingebettet und konnte nichts anderes als den HTML-Code sehen. Möglicherweise hat sich das Chrome-Debugging im Laufe der Jahre geändert, aber durch Klicken mit der rechten Maustaste auf die Registerkarte Quellen / Quellen wurde mir der Ordner zum Arbeitsbereich hinzufügen angezeigt . Ich konnte mein gesamtes Projekt hinzufügen, wodurch ich auf alle meine JavaScripts zugreifen konnte. Weitere Details finden Sie unter diesem Link . Ich hoffe das hilft jemandem.
quelle