Подтвердить что ты не робот

Отключение отладки Chrome F8/hotkey во время операции перетаскивания

В инструментах веб-разработчика Chrome вы можете сломать любую точку, нажав F8.

Часто я хотел бы сломать и проверить элемент во время операции перетаскивания, нажав F8. Однако это не сработает.

Есть ли собственный ярлык Chrome-way без запуска пользовательского script?

4b9b3361

Ответ 1

Нет, окно devtools должно быть сфокусировано, чтобы работать с ярлыками. Пока вы перетаскиваете элемент, это перетаскиваемый элемент, который имеет фокус, а не окно devtools. Лучшее, что вы можете сделать, это создать пользовательский script.

Попробуйте установить тайм-аут в консоли, чтобы запустить отладчик после 2s:

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

И затем выйти из этой функции.

Ответ 2

Есть ли собственный ярлык Chrome-way без запуска пользовательского script?

Нет. Без каких-либо дополнительных шагов DevTools должны быть в фокусе для F8, чтобы приостановить выполнение.


Если вы хотите называть debugger, тогда как DevTools открыт, но не в фокусе, вы можете прикрепить прослушиватель событий для F8 несколько раз. Они будут работать, когда вы перетаскиваете элемент, и вы хотите приостановить выполнение script.

1) Откройте консоль и вручную запустите этот script на целевом сайте перед отладкой:

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

Это добавит прослушиватель событий для клавиши F8, которая вызовет debugger.

2) Создайте usercript для Tampermonkey, который запускает выше script на сайтах, которые вы разрешаете, Пример пользователя:

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