12

In Chrome Web-Entwickler-Tools kann man jederzeit durch Drücken von F8 brechen.Chrome F8/Hotkey-Debugger bricht während einer Drag & Drop-Operation

Oft möchte ich ein Element während einer Drag & Drop-Operation brechen und untersuchen, indem Sie F8 drücken. Dies wird jedoch nicht funktionieren.

Gibt es eine native Chrome-Verknüpfung, ohne ein benutzerdefiniertes Skript auszuführen?

+0

ich diesen Fehler gemeldet haben [hier] (https://bugs.chromium.org/p/chromium/issues/detail?id=637252). – Buksy

Antwort

15

Nein, das Fenster devtools muss fokussiert sein, damit die Tastaturkürzel funktionieren. Während Sie ein Element ziehen, hat das gezogene Element den Fokus, nicht das Devtools-Fenster. Das Beste, was Sie tun können, ist ein benutzerdefiniertes Skript.

Try ein Timeout in der Konsole Einstellen des Debuggers nach 2s auszulösen:

setTimeout(function(){debugger;}, 2000); 

und dann aus dieser Funktion treten.

5

Gibt es eine native Chrome-Verknüpfung, ohne ein benutzerdefiniertes Skript auszuführen?

Nr Ohne zusätzliche Schritte die DevTools müssen für F8 im Fokus Ausführung zu unterbrechen.


Wenn Sie möchten, dass debugger nennen, während DevTools offen ist, aber nicht im Fokus, können Sie eine event listener für die F8 Schlüssel in ein paar Möglichkeiten befestigen. Diese funktionieren, wenn Sie ein Element ziehen und die Skriptausführung anhalten möchten.

1) Öffnen Sie die Konsole und manuell dieses Skript auf der Zielstelle, bevor das Debuggen auszuführen:

window.addEventListener('keydown', function(e){ if(e.keyCode === 24) {debugger;} }, false); 

Dies wird ein Ereignis-Listener für die F8 Schlüssel befestigen, die debugger auslösen.

2) ein userscript für Tampermonkey erstellen, die das Skript auf Seiten ausgeführt wird, die Sie ermöglichen. Probe userscript:

// ==UserScript== 
// @name   F8 to debug 
// @version  0.1 
// @description Press F8 when the console is open to trigger 'debugger' 
// @author  Drakes 
// @grant  none 
// @require  none 
// ==/UserScript== 

console.log("Press F8 when the console is open to trigger 'debugger'"); 
function KeyCheck(e) { 
    // Key code 24 is 'F8' 
    if(e.keyCode === 24) { 
     debugger; 
    } 
} 
window.addEventListener('keydown', KeyCheck, false); 
+0

Danke. Ich habe bisher etwas Ähnliches verwendet, könnte aber möglicherweise das Debugging beeinträchtigen, da es sich direkt auf die Ereignis-Listener in dem zu debuggenden Kontext auswirkt. Also werde ich Ihren zweiten Punkt beherzigen, wo der Kontext anders sein sollte. –

+2

Vereinbarungsgemäß wird jedoch das Ereignis nicht erfasst, wenn Sie "false" an den Ereignis-Listener übergeben. Durch Hinzufügen des Ereignis-Listeners mit 'addEventListener' wird der Listener zu einer Kette von Listenern hinzugefügt (keine überschrieben) und hoffentlich wird auch keine Logik auf F8 ausgelöst. – Drakes