Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2014, 16:59
Аватар для demi
Кандидат Javascript-наук
Отправить личное сообщение для demi Посмотреть профиль Найти все сообщения от demi
 
Регистрация: 30.11.2008
Сообщений: 122

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

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

Заранее спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2014, 17:03
Аватар для demi
Кандидат Javascript-наук
Отправить личное сообщение для demi Посмотреть профиль Найти все сообщения от demi
 
Регистрация: 30.11.2008
Сообщений: 122

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


клавиша перестает работать везде. Но нужно чтобы при вводе она работала
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2014, 17:16
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

А если пользователь действительно хочет вернуться назад, нажав эту клавишу?
Обычно предотвращение потери введенных данных делают, добавляя предупреждение по событию window.onbeforeunload
Ответить с цитированием
  #4 (permalink)  
Старый 09.11.2014, 17:30
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Octane
добавляя предупреждение по событию window.onbeforeunload
Вместо него советуют сохранять нужные данные в локальное хранилище и восстанавливать при возврате. Тем более это дефолтное поведение браузеров. Если оно не работает , допустим с динамическими полями - надо восстанавливать функционал с помощью js.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 09.11.2014, 19:59
Аватар для demi
Кандидат Javascript-наук
Отправить личное сообщение для demi Посмотреть профиль Найти все сообщения от demi
 
Регистрация: 30.11.2008
Сообщений: 122

Решил встроенным функционалом 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();
    }
})
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дважды вызвать нажатие клавиши клавиатуры pictaile Events/DOM/Window 7 12.09.2014 15:27
нажатие клавиши на мыши. avrudoi Элементы интерфейса 7 25.02.2014 15:38
Сымитировать нажатие клавиши по ее коду Win32 Events/DOM/Window 2 18.04.2012 02:37
Игнорировать нажатие клавиши. preventDefaults() не помогает балерун Opera, Safari и др. 3 15.09.2010 11:52
Смена картинки (бекграунд дива ) при событии (нажатие клавиш или клавиши и мыши) Monster Events/DOM/Window 5 01.11.2009 01:16