Trigger debug on hotkey for any site

Messing with hard-to-catch events again?

Per 28-03-2024. Zie de nieuwste versie.

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.0
// @author K33p_Qu13t
// @license MIT
// @description Messing with hard-to-catch events again?
//  Here we go - trigger debug at any site by holding hotkey combination, then inspect anything you want!
//  Debug would be triggered after miliseconds you spend by holding the hotkey combination
// ==/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);