Disable website keyboard hooks

Stop websites from hijacking keyboard shortcuts.

Per 26-03-2017. 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           Disable website keyboard hooks
// @description    Stop websites from hijacking keyboard shortcuts.
// @author         Isaac Levy, Jonas Singe
// @run-at         document-start
// @include        *
// @grant          none
// @version        0.0.2
// @namespace      https://github.com/isaacl/keycodeScript
// ==/UserScript==

// Disable these keys when no keyboard modifier is pressed
var keycodes = new Set([
    // Add keycodes as desired
    37, 38, 39, 40 // Arrow Keys.
]);

// Disable these keys when Meta key is pressed.
var meta_keycodes = new Set([
	// Add keycodes as desired
	70 // Ctrl + F
]);

// Disable these keys when Alt key is pressed.
var alt_keycodes = new Set([
	// Add keycodes as desired
	83 // Alt + S
]); 


// Don't change below this line.

var isMac = navigator.platform.indexOf('Mac') >= 0;


document.addEventListener('keydown', function(e) {
    //console.log(e);
    if (isMac ? e.metaKey : e.ctrlKey) {
        if (meta_keycodes.has(e.keyCode)) {
            e.stopImmediatePropagation();
        }
    } else if (e.altKey) {
        if (alt_keycodes.has(e.keyCode)) {
            e.stopImmediatePropagation();
        }
    } else if (keycodes.has(e.keyCode)) {
        e.stopImmediatePropagation();
    }
    return false;
});