12

Negli strumenti di sviluppo Web di Chrome, è possibile interrompere in qualsiasi momento premendo F8.Chrome F8/hotkey debugger che si interrompe durante un'operazione di trascinamento della selezione

Spesso mi piacerebbe interrompere e ispezionare un elemento durante un'operazione di trascinamento della selezione premendo F8. Questo non funzionerà comunque.

C'è un collegamento nativo di Chrome-way senza eseguire uno script personalizzato?

+0

Ho segnalato questo bug [qui] (https://bugs.chromium.org/p/chromium/issues/detail?id=637252). – Buksy

risposta

15

No, la finestra devtools deve essere focalizzata affinché le scorciatoie da tastiera funzionino. Mentre trascini un elemento, è l'elemento trascinato che ha lo stato attivo, non la finestra di devtools. Il meglio che puoi fare è con uno script personalizzato.

l'impostazione di un timeout nella console per attivare il debugger dopo 2s Prova:

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

E poi passo fuori di quella funzione.

5

C'è un collegamento nativo di Chrome-way senza eseguire uno script personalizzato?

N. senza alcuna passaggi aggiuntivi Devtools deve essere contenuto nel fuoco per F8 per sospendere l'esecuzione.


Se vuoi chiamare debugger mentre DevTools è aperta, ma non a fuoco, è possibile collegare un event listener per la chiave F8 in un paio di modi. Funzioneranno quando trascini un elemento e vuoi mettere in pausa l'esecuzione dello script.

1) Aprire la console ed eseguire manualmente questo script sul sito di destinazione prima di debug:

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

Ciò allegare un listener di eventi per l' chiave F8 che attiverà debugger.

2) Creare un userscript per Tampermonkey che esegue lo script sopra nei siti autorizzati. userscript Esempio:

// ==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

Grazie. Ho usato qualcosa di simile finora, ma potrebbe interferire potenzialmente con il debug in quanto influenza direttamente i listener di eventi nel contesto da sottoporre a debug. Quindi prenderò a cuore il secondo punto in cui il contesto dovrebbe essere diverso. –

+2

Concordato, tuttavia, quando si passa "false" al listener di eventi, non viene catturato l'evento. Inoltre, aggiungendo il listener di eventi usando 'addEventListener', aggiunge l'ascoltatore a una catena di ascoltatori (non sovrascrivendo nessuno), e spero che nessuno attivi la logica anche su F8 :) – Drakes