Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Нажатие клавиши backspace (https://javascript.ru/forum/events/51512-nazhatie-klavishi-backspace.html)

demi 09.11.2014 16:59

Нажатие клавиши backspace
 
Добрый день

У меня проблема. При нажатии клавиши backspace браузер
переходит на прошлую страницу.
У меня программа на extjs и если пользователь случайно нажимает эту клавишу, допустим не попав мышкой в поле ввода, то программа закрывается, переходя на прошлую страницу.
Как это отключить?
Или перехватить и обезвредить))

Заранее спасибо

demi 09.11.2014 17:03

Используя:
document.onkeydown = function(e) {
    if (e.keyCode == 8) { return false }
}


клавиша перестает работать везде. Но нужно чтобы при вводе она работала

Octane 09.11.2014 17:16

А если пользователь действительно хочет вернуться назад, нажав эту клавишу?
Обычно предотвращение потери введенных данных делают, добавляя предупреждение по событию window.onbeforeunload

danik.js 09.11.2014 17:30

Цитата:

Сообщение от Octane
добавляя предупреждение по событию window.onbeforeunload

Вместо него советуют сохранять нужные данные в локальное хранилище и восстанавливать при возврате. Тем более это дефолтное поведение браузеров. Если оно не работает , допустим с динамическими полями - надо восстанавливать функционал с помощью js.

demi 09.11.2014 19:59

Решил встроенным функционалом ext
нашел на другом форуме
Ext.EventManager.on(window, 'keydown', function(e, t) {
    if (e.getKey() == e.BACKSPACE && (!/^input$/i.test(t.tagName) || t.disabled || t.readOnly)) {
        e.stopEvent();
    }
})


Часовой пояс GMT +3, время: 10:04.