Disable scrolling when tapping on space button

Disable scrolling with space when not in input fields

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name         Disable scrolling when tapping on space button
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  Disable scrolling with space when not in input fields
// @author       MasterMe
// @match        *://*/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Check if the target is an input field or a content-editable element
    function isInputField(element) {
        return element.tagName === 'INPUT' || element.tagName === 'TEXTAREA' || element.isContentEditable;
    }

    // Event listener for keydown
    document.addEventListener('keydown', function(e) {
        // If the space key is pressed
        if (e.code === 'Space') {
            const activeElement = document.activeElement;

            if (isInputField(activeElement)) {
                // If in input field, allow the space key to function normally
                return;
            } else {
                // Prevent spacebar from scrolling the page if not in an input field
                e.preventDefault();
            }
        }
    }, false);

    // Additional event listener for keypress to ensure no scrolling
    document.addEventListener('keypress', function(e) {
        if (e.code === 'Space') {
            const activeElement = document.activeElement;

            if (!isInputField(activeElement)) {
                e.preventDefault();
            }
        }
    }, false);
})();