Die Console Utilities API enthält eine Reihe von praktischen Funktionen für die Ausführung gängiger Aufgaben: DOM-Elemente auswählen und prüfen, Objekte abfragen, Daten in einem lesbaren Format anzeigen, Profiler beenden und starten, DOM-Ereignisse und Funktionsaufrufe überwachen usw.
Suchen Sie nach console.log()
, console.error()
und den restlichen console.*
-Funktionen? Weitere Informationen finden Sie in der Console API-Referenz.
$_
$_
gibt den Wert des zuletzt ausgewerteten Ausdrucks zurück.
Im folgenden Beispiel wird ein einfacher Ausdruck (2 + 2
) ausgewertet. Anschließend wird die Property $_
ausgewertet, die denselben Wert enthält:
Im nächsten Beispiel enthält der ausgewertete Ausdruck anfangs ein Array mit Namen. Wenn $_.length
ausgewertet wird, um die Länge des Arrays zu ermitteln, ändert sich der in $_
gespeicherte Wert in den zuletzt ausgewerteten Ausdruck, 4:
0 $ bis 4 $
Die Befehle $0
, $1
, $2
, $3
und $4
dienen als Verlaufsreferenz für die letzten fünf DOM-Elemente, die im Bereich Elemente geprüft wurden, oder für die letzten fünf JavaScript-Heap-Objekte, die im Bereich „Profile“ ausgewählt wurden. $0
gibt das zuletzt ausgewählte Element oder JavaScript-Objekt zurück, $1
das zweitletzte usw.
Im folgenden Beispiel ist im Bereich Elemente ein img
-Element ausgewählt. In der Seitenleiste Konsole wurde $0
ausgewertet und es wird dasselbe Element angezeigt:
Das Bild unten zeigt ein anderes Element, das auf derselben Seite ausgewählt ist. $0
bezieht sich jetzt auf das neu ausgewählte Element, während $1
das zuvor ausgewählte Element zurückgibt:
$(selector [, startNode])
$(selector)
gibt die Referenz auf das erste DOM-Element mit dem angegebenen CSS-Selektor zurück. Wenn diese Funktion mit einem Argument aufgerufen wird, ist sie eine Verknüpfung für die Funktion document.querySelector().
Im folgenden Beispiel wird ein Verweis auf das erste <img>
-Element im Dokument zurückgegeben:
Klicken Sie mit der rechten Maustaste auf das zurückgegebene Ergebnis und wählen Sie Im Elementbereich anzeigen aus, um es im DOM zu finden, oder Heranzoomen, um es anzusehen, um es auf der Seite anzuzeigen.
Im folgenden Beispiel wird ein Verweis auf das aktuell ausgewählte Element zurückgegeben und das Attribut src
angezeigt:
Diese Funktion unterstützt auch einen zweiten Parameter, startNode
, mit dem ein Element oder Knoten angegeben wird, ab dem nach Elementen gesucht werden soll. Der Standardwert für diesen Parameter ist document
.
Im folgenden Beispiel wird ein Verweis auf das erste img
-Element zurückgegeben, das ein Abkömmling von devsite-header-background
ist, und seine src
-Eigenschaft angezeigt:
$$(selector [, startNode])
Im folgenden Beispiel wird $$(selector) gibt ein Array von Elementen zurück, die mit dem angegebenen CSS-Selektor übereinstimmen. Dieser Befehl entspricht dem Aufruf von
Array.from(document.querySelectorAll())
.
$$()
to create an array of all <img>
elements in the current document
and displays the value of each element's src
property:let images = $$('img');
for (let each of images) {
console.log(each.src);
}
verwendet.
<img>-Elemente, die im aktuellen Dokument nach dem ausgewählten Knoten erscheinen:
let images = $$('img', document.querySelector('.devsite-header-background'));
for (let each of images) {
console.log(each.src);
}
$x(path [, startNode])
$x(path)
gibt ein Array von DOM-Elementen zurück, die mit dem angegebenen XPath-Ausdruck übereinstimmen.
Mit dem folgenden Code werden beispielsweise alle <p>
-Elemente auf der Seite zurückgegeben:
$x("//p")
Im folgenden Beispiel werden alle <p>
-Elemente zurückgegeben, die <a>
-Elemente enthalten:
$x("//p[a]")
Ähnlich wie die anderen Auswahlfunktionen hat $x(path)
einen optionalen zweiten Parameter, startNode
, mit dem ein Element oder Knoten angegeben wird, nach dem nach Elementen gesucht werden soll.
clear()
clear()
löscht den Konsolenverlauf.
clear();
copy(object)
copy(object)
kopiert eine Stringdarstellung des angegebenen Objekts in die Zwischenablage.
copy($0);
debug(function)
Wenn die angegebene Funktion aufgerufen wird, wird der Debugger aufgerufen und es wird im Bereich Quellen eine Unterbrechung innerhalb der Funktion ausgelöst, damit der Code Schritt für Schritt durchlaufen und behoben werden kann.
debug(getData);
Verwenden Sie undebug(fn)
, um die Ausführung nicht mehr an der Funktion anzuhalten, oder deaktivieren Sie alle Haltestellen über die Benutzeroberfläche.
Weitere Informationen zu Haltepunkten finden Sie unter Code mithilfe von Haltepunkten pausieren.
dir(object)
dir(object)
zeigt eine Auflistung aller Properties des angegebenen Objekts im Objektstil an. Diese Methode ist eine Verknüpfung für die console.dir()
-Methode der Console API.
Im folgenden Beispiel wird der Unterschied zwischen der direkten Auswertung von document.body
in der Befehlszeile und der Verwendung von dir()
zum Anzeigen desselben Elements veranschaulicht:
document.body;
dir(document.body);
Weitere Informationen finden Sie im Console API-Eintrag zu console.dir()
.
dirxml(object)
dirxml(object)
druckt eine XML-Darstellung des angegebenen Objekts aus, wie im Bereich Elemente zu sehen.
Diese Methode entspricht der console.dirxml()
-Methode.
inspect(object/function)
Mit inspect(object/function)
wird das angegebene Element oder Objekt im entsprechenden Bereich geöffnet und ausgewählt: entweder im Bereich Elemente für DOM-Elemente oder im Bereich „Profile“ für JavaScript-Heap-Objekte.
Im folgenden Beispiel wird das document.body
im Bereich Elemente geöffnet:
inspect(document.body);
Wenn Sie eine Funktion zum Prüfen übergeben, wird das Dokument im Bereich Quellen geöffnet.
getEventListeners(object)
getEventListeners(object)
gibt die Ereignis-Listener zurück, die für das angegebene Objekt registriert sind. Der Rückgabewert ist ein Objekt, das ein Array für jeden registrierten Ereignistyp enthält (z. B. click
oder keydown
). Die Mitglieder jedes Arrays sind Objekte, die den für jeden Typ registrierten Listener beschreiben. Im Folgenden sind beispielsweise alle Ereignis-Listener aufgeführt, die für das Dokumentobjekt registriert sind:
getEventListeners(document);
Wenn für das angegebene Objekt mehrere Listener registriert sind, enthält das Array ein Mitglied für jeden Listener. Im folgenden Beispiel sind für das click
-Ereignis zwei Ereignis-Listener für das Dokumentelement registriert:
Sie können jedes dieser Objekte maximieren, um die zugehörigen Properties zu sehen:
Weitere Informationen finden Sie unter Objekteigenschaften prüfen.
keys(object)
keys(object)
gibt ein Array mit den Namen der Properties zurück, die zum angegebenen Objekt gehören. Mit values()
kannst du die zugehörigen Werte derselben Properties abrufen.
Angenommen, in Ihrer Anwendung ist das folgende Objekt definiert:
let player = {
"name": "Parzival",
"number": 1,
"state": "ready",
"easterEggs": 3
};
Angenommen, player
wurde im globalen Namespace definiert (zur Vereinfachung), führt das Eintippen von keys(player)
und values(player)
in der Konsole zu folgendem Ergebnis:
monitor(function)
Wenn die angegebene Funktion aufgerufen wird, wird in der Konsole eine Nachricht protokolliert, die den Funktionsnamen und die Argumente enthält, die beim Aufruf an die Funktion übergeben wurden.
function sum(x, y) {
return x + y;
}
monitor(sum);
Verwenden Sie unmonitor(function)
, um das Monitoring zu beenden.
monitorEvents(object [, events])
Wenn eines der angegebenen Ereignisse für das angegebene Objekt auftritt, wird das Ereignisobjekt in der Konsole protokolliert. Sie können ein einzelnes Ereignis, eine Reihe von Ereignissen oder einen der generischen Ereignistypen angeben, der einer vordefinierten Sammlung von Ereignissen zugeordnet ist. Siehe nachstehende Beispiele
Im Folgenden werden alle Ereignisse zum Ändern der Größe des Fensterobjekts überwacht.
monitorEvents(window, "resize");
Im Folgenden wird ein Array definiert, mit dem sowohl „resize“- als auch „scroll“-Ereignisse für das Fensterobjekt überwacht werden:
monitorEvents(window, ["resize", "scroll"])
Sie können auch einen der verfügbaren Ereignistypen angeben, also Strings, die vordefinierten Ereignisgruppen zugeordnet sind. In der folgenden Tabelle sind die verfügbaren Ereignistypen und die zugehörigen Ereigniszuordnungen aufgeführt:
Ereignistyp und entsprechende zugeordnete Ereignisse | |
---|---|
Maus | „mousedown“, „mouseup“, „click“, „dblclick“, „mousemove“, „mouseover“, „mouseout“, „mousewheel“ |
Schlüssel | „keydown“, „keyup“, „keypress“, „textInput“ |
Touchscreen | „touchstart“, „touchmove“, „touchend“, „touchcancel“ |
Kontrollgruppe | „Größe ändern“, „Scrollen“, „Zoomen“, „Fokus“, „Unscharfstellen“, „Auswählen“, „Ändern“, „Senden“, „Zurücksetzen“ |
Im folgenden Beispiel wird der Ereignistyp „key“ verwendet, um alle entsprechenden Schlüsselereignisse in einem Eingabetextfeld zu erfassen, das derzeit im Bereich Elemente ausgewählt ist.
monitorEvents($0, "key");
Unten sehen Sie eine Beispielausgabe, nachdem Zeichen in das Textfeld eingegeben wurden:
Verwenden Sie unmonitorEvents(object[, events])
, um das Monitoring zu beenden.
„profile“([name]) und „profileEnd“([name])
profile()
startet eine JavaScript-CPU-Profilierungssitzung mit einem optionalen Namen. profileEnd()
schließt das Profil ab und zeigt die Ergebnisse im Leistung > Haupt-Track an.
So starten Sie das Profiling:
profile("Profile 1")
So beenden Sie das Profiling und sehen sich die Ergebnisse im Tab Leistung > Haupt an:
profileEnd("Profile 1")
Das Ergebnis wird auf dem Tab Leistung > Haupt angezeigt:
Profile können auch verschachtelt werden. Das funktioniert beispielsweise in beliebiger Reihenfolge:
profile('A');
profile('B');
profileEnd('A');
profileEnd('B');
queryObjects(Constructor)
Rufen Sie queryObjects(Constructor)
in der Konsole auf, um ein Array von Objekten zurückzugeben, die mit dem angegebenen Konstruktor erstellt wurden. Beispiel:
queryObjects(Promise)
: Gibt alle Instanzen vonPromise
zurück.queryObjects(HTMLElement)
: Gibt alle HTML-Elemente zurück.queryObjects(foo)
, wobeifoo
ein Klassenname ist. Gibt alle Objekte zurück, die übernew foo()
instanziiert wurden.
Der Umfang von queryObjects()
ist der aktuell ausgewählte Ausführungskontext in der Konsole.
table(data [, columns])
Sie können Objektdaten in Tabellenformat erfassen, indem Sie ein Datenobjekt mit optionalen Spaltenüberschriften übergeben.
Dies ist eine Tastenkombination für console.table()
.
So können Sie beispielsweise eine Liste von Namen in einer Tabelle in der Konsole anzeigen lassen:
let names = [
{ firstName: "John", lastName: "Smith" },
{ firstName: "Jane", lastName: "Doe" },
];
table(names);
undebug(function)
undebug(function)
beendet das Debuggen der angegebenen Funktion, sodass der Debugger beim Aufrufen der Funktion nicht mehr aufgerufen wird. Diese Option wird in Verbindung mit debug(fn)
verwendet.
undebug(getData);
unmonitor(function)
unmonitor(function)
stoppt das Monitoring der angegebenen Funktion. Diese Option wird in Verbindung mit monitor(fn)
verwendet.
unmonitor(getData);
unmonitorEvents(object [, events])
unmonitorEvents(object[, events])
beendet die Überwachung von Ereignissen für das angegebene Objekt und die angegebenen Ereignisse. Mit dem folgenden Code wird beispielsweise die gesamte Ereignisüberwachung für das Fensterobjekt beendet:
unmonitorEvents(window);
Sie können auch selektiv das Monitoring bestimmter Ereignisse für ein Objekt beenden. Im folgenden Code werden beispielsweise alle Mausereignisse für das aktuell ausgewählte Element überwacht und dann die Überwachung der „mousemove“-Ereignisse beendet, um die Unruhe in der Konsolenausgabe zu reduzieren:
monitorEvents($0, "mouse");
unmonitorEvents($0, "mousemove");
values(object)
values(object)
gibt ein Array zurück, das die Werte aller Attribute enthält, die zum angegebenen Objekt gehören.
let player = {
"name": "Parzival",
"number": 1,
"state": "ready",
"easterEggs": 3
};
values(player);