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!

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

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