Chrome Dev Tools: Wie kann ich das Netzwerk für einen Link verfolgen, der einen neuen Tab öffnet?

235

Ich möchte die Netzwerkaktivität verfolgen, die auftritt, wenn ich auf einen Link klicke. Das Problem ist, dass der Link einen neuen Tab öffnet und anscheinend die Dev Tools pro Tab funktionieren, für den er geöffnet war. "Protokoll bei Navigation beibehalten" hilft nicht.

Meine aktuelle Lösung besteht darin, zu FireFox und HttpFox zu wechseln, bei denen dieses Problem nicht auftritt. Ich frage mich, wie alle Entwickler für Chrome damit umgehen. Das klingt ziemlich einfach (natürlich habe ich nach der Antwort gesucht und nichts hilfreiches gefunden).

Davka
quelle
Da diese Frage viel Aufmerksamkeit erhält, begann ich mich zu fragen, ob ich eine bessere Lösung anbieten kann. Würde es den Trick machen, alle Links auf derselben Registerkarte zu öffnen?
Konrad Dzwinel
@KonradDzwinel Dies war eine einmalige Aufgabe für mich und ich ging weiter, also kann ich es dir nicht sagen. Wenn Sie versuchen möchten, eine Antwort zu schreiben, werde ich diese gerne akzeptieren.
Davka
1
Wenn Sie dies als Funktion wünschen, können Sie diesen Chromium-Fehler markieren
phsource

Antworten:

220

In chrome://net-internals/#events(oder chrome://net-exportin der neuesten Version von Chrome) finden Sie eine detaillierte Übersicht aller Netzwerkereignisse, die in Ihrem Browser auftreten.


Eine andere mögliche Lösung, abhängig von Ihrem spezifischen Problem, besteht darin, "Protokoll beibehalten" auf der Registerkarte "Netzwerk" zu aktivieren:

DevTools> Netzwerk> Protokoll beibehalten

und erzwingen Sie, dass alle Links auf derselben Registerkarte geöffnet werden, indem Sie den folgenden Code in der Konsole ausführen:

[].forEach.call(document.querySelectorAll('a'),
    function(link){
        if(link.attributes.target) {
            link.attributes.target.value = '_self';
        }
    });

window.open = function(url) {
    location.href = url;
};
Konrad Dzwinel
quelle
13
danke das ist cool, aber ich möchte die Liste wie in den dev tools (Anfragen & Antworten mit allen Headern), nur für einen anderen Tab
davka
Dies ist besonders dann sehr interessant, wenn Sie den Filter hinzufügen type:URL_REQUEST, er scheint jedoch nicht dieselben Informationen wie die Registerkarte "Netzwerk" zu enthalten. Zum Beispiel scheint es, Cookie-Daten sowohl für Anfragen als auch für Antworten zu entfernen.
Patrick M
3
document.querySelectorAll('a,form')würde auch Formen beeinflussen.
JGB
1
Ich wünschte, ich könnte dies zweimal positiv bewerten. Ich habe ein Inhaltsskript für Chrome erstellt, das dies auf einem Hotkey ausführt, und es hat buchstäblich Stunden meines Lebens gerettet.
polkovnikov.ph
1
Chrome-Anzeigen "Die net-internals-Ereignisanzeige und die zugehörigen Funktionen wurden entfernt. Verwenden Sie chrome: // net-export, um Netlogs zu speichern, und den externen Katapult netlog_viewer, um sie anzuzeigen." , aber chrome: // net-export funktioniert fantastisch.
Jordanien
108

Die im Kommentar von phsource erwähnte Feature-Anfrage wurde implementiert.

In neueren Versionen (beginnend mit Chrome 50) können Sie das Menü Einstellungen für Entwicklertools aufrufen (Entwicklertools öffnen, dann das 3-Punkte-Menü verwenden oder F1drücken) und das Kontrollkästchen "DevTools für Popups automatisch öffnen" aktivieren.


quelle
13
Funktioniert einwandfrei, außer dass es etwas schwierig ist, "Protokolle beibehalten" sofort nach dem Öffnen des Fensters zu aktivieren.
Erwin Mayer
Sie sollten Ihre Antwort aktualisieren, da Chrome Stable Version derzeit 55
Lulu
5
Seufz, im neuen Fenster ist jedoch <Protokolle beibehalten> nicht aktiviert. Was ist los mit Chrome-Ingenieuren?
Pacerier
Verwenden Sie dies in Kombination mit stackoverflow.com/a/29029881/145400 (eine großartige Antwort auf "Chrome Dev Tools ist es möglich, auch nach dem Schließen des Fensters geöffnet zu bleiben?")!
Dr. Jan-Philip Gehrcke
Verwenden Sie das 3-Punkte-Menü oder klicken Sie auf> Einstellungsseite> DevTools> "DevTools für Popups automatisch öffnen"
Holly
27

In Chrome 61.0.3163.100 steht Ihnen jetzt die folgende Option zur Verfügung. Der Zugriff erfolgt über die Chrome Dev Tools-Einstellungen. Es ist ganz unten.

Web Inspector-Einstellungen

Konrad Piascik
quelle
3
Dadurch wird "Protokolle beibehalten" im neu geöffneten Fenster leider nicht aktiviert. Wenn Sie also ein neues Fenster und eine Umleitung in diesem Fenster erhalten, wird das Netzwerkprotokoll gelöscht und beginnt nach der Umleitung.
Janh
4
Die Einstellung für diejenigen, die nicht auf den Link klicken möchten, um das Bild anzuzeigen, lautet "DevTools für Popups automatisch öffnen" unter der Überschrift "DevTools". Andere verfügbare Einstellungen: "Protokoll beibehalten" unter "Netzwerk"; "Protokoll bei Navigation beibehalten" unter "Konsole".
Hlongmore
2
Dies funktioniert für mich (Chrome 76), und es wird die Aktivierung „Konserve Logs“ , wenn es startet der Entwickler Popup - Fenster tools.This von mir aktiviert werden kann , mit der Konserve Log aktiviert Einstellung?
Vince Bowdren
11
  • Fügen Sie den Link zu hinzu / aktualisieren Sie ihn target="_self"
  • Aktivieren Sie auf der Registerkarte "Netzwerk" die Option "Protokolle bei Navigation beibehalten".
  • Klicken Sie auf den Link und Ihre Anfrage wird protokolliert
Sebastien Lorber
quelle
10

Sie können es so machen:

  1. setze target = "any_window_name" für den gewünschten Link.
  2. Klicken Sie einmal auf diesen Link, um ihn in einem neuen Tab zu öffnen.
  3. Öffnen Sie in der geöffneten Registerkarte die Entwicklertools.
  4. Gehen Sie zurück zur Ursprungsseite und klicken Sie erneut auf diesen Link.

    Das Ergebnis wird in ein bereits vorbereitetes Fenster mit geöffneten Entwicklertools geladen.

    Sie können die Option "Protokoll beibehalten" in den Entwicklungstools aktivieren (siehe in Konrad Dzwinel ausgezeichnete Antwort), um den Weiterleitungsverkehr auf diesem Link abzufangen.

    Hinweis : Die meisten Personen, die mit dem Link-Ziel ∈ {_self, _blank, _parent, _top} vertraut sind. Tatsächlich kann jedoch ein beliebiger Name angegeben werden. Dadurch wird ein neues Fenster mit diesem Namen geöffnet, und alle nachfolgenden Klicks auf Links, Formulare oder window.open mit demselben Zielwert werden in demselben Fenster geöffnet. weiterführende Literatur - mdn: window.open , mdn: <a> tag

Michael L.
quelle
Vielen Dank für diesen Tipp, daran hätte ich nie gedacht. Genau das, was ich brauchte. Funktioniert über mehrere Fenster hinweg (zumindest in Chrome), wenn jemand, der dies liest, sehen möchte, wie sich zwei Seiten gleichzeitig verhalten.
Mark Ormesher
3

Falls der geöffnete Link nicht umgeleitet wird, können Sie die Registerkarte Netzwerk auf der neuen Registerkarte öffnen und dann die Registerkarte aktualisieren.

Orgads
quelle
0

* Haftungsausschluss: Gepostet vom Entwickler von HttpWatch *

HttpWatch unter Windows kann den Netzwerkverkehr aufzeichnen, der beim Öffnen einer neuen Chrome-Registerkarte oder eines neuen Chrome-Fensters generiert wird, indem die automatische Aufzeichnung unter Extras-> Optionen-> Aufzeichnung aktiviert wird. Klicken Sie im neuen Fenster auf das HttpWatch-Symbol, um die Netzwerkablaufverfolgung anzuzeigen.

Die kostenlose Version enthält grundlegende Informationen wie URL, Statuscode und verstrichene Zeit für jede Anfrage.

* Haftungsausschluss: Gepostet vom Entwickler von HttpWatch *

HttpWatchSupport
quelle