禁用浏览器ctrl D/command D快捷键

Enable or disable website hotkeys using a MenuCommand

// ==UserScript==
// @name         禁用浏览器ctrl D/command D快捷键
// @name:en    Disable browser ctrl D/command D shortcuts
// @namespace    http://tampermonkey.net/
// @version      0.1.2
// @description  Enable or disable website hotkeys using a MenuCommand
// @description:en Enable or disable website hotkeys using a MenuCommand
// @author       aspen138
// @match        http://*/*
// @match        https://*/*
// @grant        GM_registerMenuCommand
// @grant        GM_getValue
// @grant        GM_setValue
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Retrieve hotkeysEnabled state from storage or default to true
    let hotkeysEnabled = GM_getValue('hotkeysEnabled', true);

    // Function to toggle the state of hotkeysEnabled
    function toggleHotkeys() {
        hotkeysEnabled = !hotkeysEnabled;
        GM_setValue('hotkeysEnabled', hotkeysEnabled); // Save the new state to storage
        console.log('Hotkeys are now ' + (hotkeysEnabled ? 'enabled' : 'disabled'));
        alert('Hotkeys are now ' + (hotkeysEnabled ? 'enabled' : 'disabled'));
    }

    // Add menu command to toggle hotkeys
    GM_registerMenuCommand("Toggle Hotkeys", toggleHotkeys, 't');

    // Event listener to catch keydown events and prevent them if hotkeys are disabled
    document.addEventListener('keydown', function(e) {
        if(!hotkeysEnabled) {
            // Prevent default action for Ctrl+D or Command+D
            if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === 'd') {
                e.preventDefault();  // Prevent the default action
                e.stopPropagation(); // Stop the event from propagating to other handlers
            }
        }
    }, true);
})();