Как избежать перехода назад, когда пользователь вводит backspace при вводе текста HTML? - PullRequest
2 голосов
/ 21 июля 2009

Backspace - это горячая клавиша браузера для перехода на последнюю страницу. Я знаю, что, когда вход имеет фокус, эта горячая клавиша отключена. Но у меня есть события keyup и keydown, связанные с этим вводом, и что-то, что я написал, вызывает эту проблему.

Знаете ли вы решение?

Ответы [ 7 ]

1 голос
/ 28 мая 2010

У меня была похожая потребность, то есть нейтрализовать действие Back, вызванное клавишей Backspace, и я нашел решение на этом сайте

http://www.webmasterworld.com/javascript/3785986.htm

Надеюсь, это вам поможет.

1 голос
/ 21 июля 2009

когда вы обработали событие от элемента input, отмените всплывающее окно этого события перед возвратом.

0 голосов
/ 11 февраля 2011
if (typeof(window.event)!='undefined')//ie
   {document.onkeydown=function()
                       {var tag_name=event.srcElement.tagName.toUpperCase();
                        if (tag_name!='INPUT' && tag_name!='TEXTAREA')
                           {return event.keyCode!=8;
                           }
                       };
   }
else //firefox, chrome
    {window.addEventListener('keydown',function(evt){if (evt.keyCode==8){evt.preventDefault();}}, true);
    }
0 голосов
/ 21 июля 2009

Что вы можете сделать:

  1. Вы можете установить прослушиватель для InputField и просматривать все события нажатия клавиш.
  2. В прослушивателе событий вы можете создать буферную переменную, имеющую реальное значение InputField.

Таким образом, если вы примете код, отличный от Backspace, то новым значением буфера будет значение InputField, и вы будете использовать hotKeyFunction, в противном случае новое значение InputField будет значением буфера, и вы получите нормальную работу InputField.

0 голосов
/ 21 июля 2009

Вы можете попытаться подключиться к событию window.onbeforeunload, чтобы предотвратить такую ​​случайную навигацию.

0 голосов
/ 21 июля 2009

попробуйте это на вашем onKeyDown или onKeyPress даже

if (event.keyCode==8)//where 8 ascii code of backspace
{
retunr;
}
0 голосов
/ 21 июля 2009

Проблема была вызвана удалением ввода перед возвратом события onKeyDown.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...