Trigger debug on hotkey for any site

Messing with hard-to-catch events again? Trigger debug at any site by pressing hotkey combination (default is for ctrl+q), then inspect anything you want!

Du musst eine Erweiterung wie Tampermonkey, Greasemonkey oder Violentmonkey installieren, um dieses Skript zu installieren.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

Sie müssten eine Skript Manager Erweiterung installieren damit sie dieses Skript installieren können

(Ich habe schon ein Skript Manager, Lass mich es installieren!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name Trigger debug on hotkey for any site
// @namespace K33p_Qu13t's Weird Scripts
// @match *://*/*
// @grant none
// @version 1.1
// @author K33p_Qu13t
// @license MIT
// @description Messing with hard-to-catch events again? Trigger debug at any site by pressing hotkey combination (default is for ctrl+q), then inspect anything you want!
// ==/UserScript==

/** Char to trigger Debug with ctrl+char pressed*/
const hotkeyChar = 'q';

let millisecondsHolded = 0;
let holdStartTime;
let timeoutId;

const onKeyDown = (e) => {
  if (!e.repeat && e.ctrlKey && e.key === hotkeyChar) {
        clearTimeout(timeoutId);
        // Set when started to hold hotkey
        holdStartTime = Date.now();

        document.addEventListener('keyup', onKeyUp);
    }
}

const onKeyUp = () => {
  millisecondsHolded = Date.now() - holdStartTime;
  timeoutId = setTimeout(() => {
      // Stop any code flow
      debugger;
  }, millisecondsHolded);

  document.removeEventListener('keyup', onKeyUp);
}

document.addEventListener('keydown', onKeyDown);