event.preventDefault не работает для обновления CMD + R - PullRequest
0 голосов
/ 29 октября 2018

Я пытался перехватить и предотвратить все события по умолчанию. Может ли кто-нибудь указать на документацию / источник правды, чтобы показать, что это невозможно, например, для: cmd + r (Mac) (или ctrl + r для Windows).

<html>
    <head>
    </head>
    <body>
        <div id="debug">
            Debug:
        </div>

        <script>
            document.addEventListener('keypress', (event) => {
                const otherKeys = []
                if (event.ctrlKey) {
                    otherKeys.push("CTRL")
                }
                if (event.shiftKey) {
                    otherKeys.push("SHIFT")
                }
                if (event.altKey) {
                    otherKeys.push("ALT")
                }
                if (event.metaKey) {
                    otherKeys.push("META")
                }

                let otherKeysStr = otherKeys.join(",")
                if (otherKeysStr.length) {
                    otherKeysStr = `(${otherKeysStr})`
                }

                document.getElementById("debug").innerText += (` ${event.key} ${otherKeysStr}`)

                event.stopImmediatePropagation()
                event.stopPropagation()
                event.preventDefault()
                return false;
            });
        </script>
    </body>
</html>

1 Ответ

0 голосов
/ 01 ноября 2018

Как предложил lois6b, вы можете, по крайней мере, дать пользователю возможность не обновлять страницу, используя:

window.addEventListener('beforeunload', (event) => {
    event.preventDefault();
    event.returnValue = '';
    return '';
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...