Отключение возможности запретить использование по умолчанию в коде веб-сайта может сделать этот сайт нестабильным и, возможно, непригодным для использования.
Вы можете создать переопределение preventDefault
для KeyboardEvent
(который является подклассом UIEvent
, который является подклассом Event
, где реализован стандарт preventDefault
), например:
KeyboardEvent.prototype.preventDefault = function() { };
(Флаги writable
, enumerable
и configurable
на Event
*1014* все true
, поэтому здесь Object.defineProperty
не требуется.)
Пример:
KeyboardEvent.prototype.preventDefault = function() { };
// This event handler *should* prevent typing in the input, but doesn't because we've broken preventDefault
document.getElementById("the-input").addEventListener("keydown", function(e) {
e.preventDefault();
}, false);
<input id="the-input" type="text">
Сравните это с версией, которая не переопределяет preventDefault
:
// This event handler prevents typing in the input, because we haven't broken preventDefault
document.getElementById("the-input").addEventListener("keydown", function(e) {
e.preventDefault();
}, false);
<input id="the-input" type="text">
Это может сработать, по крайней мере, для подмножества современных браузеров, но опять же, я настоятельно рекомендую против этого.