JavaScript. Отмена прехода к предыдущей странице при нажатии Backspace

Последний раз я писал в блог месяц назад - в последний день июля. С тех пор я побывал в отпуске и снова успел устать, с головой окунувшись в работу. Которой, как обычно, больше, чем я когда-либо смогу сделать. Считая проекты, в которые я вовлечен, я сбился, когда закончались пальцы на руке. Удручает, что совсем не остается времени на собственные задумки, вновь отложены в сторону учет личных финансов и GTD. Я вернусь к ним. Позже. Наверно.

Я думаю, так происходит из-за отсутствия быстрого результата. Хочется очень кортоких проектов в противовес тому, что приходится делать на работе - когда разработка программы длится месяцами. Попробую сосредоточиться (в очередной раз) на каких-то вещах, которые мне действительно интересны. Надеюсь, что в сферу моих нынешних увлечений попадет и этот блог.

Я же пишу код почти каждый день, так почему не могу выдать несколько мыслей по этому поводу на станицах блога. Может от того, что боюсь написать банальщину?Может потому, что объяснить десятичасовой поиск ошибки, не представляется возможным, без подробного описания проекта? Может быть из-за лени?

Я попробую снова что-то изменить? Если не пытаться, то уж точно ничего не получиться.

К делу:

Я многократно писал о своей любви к веб-интерфейсу даже в обычных приложениях. Потому приходится решать проблемы свойственные браузерам. Например, Internet Explorer обладает неприятной особеннойстью переходить к предыдущей странице, при нажатии кнопки Backspace. Причем это происходит даже в том случае, когда фокус находится в поле ввода (input) или textarea. Гугл помог отыскать решение для этой проблемы, которое я не хочу потеряти и потому публикую здесь.

  1. function killBackSpace(e)
  2. {
  3. e = e ? e : window.event;
  4. var t = e.target ? e.target : e.srcElement ? e.srcElement : null;
  5. if(t && t.tagName && (t.type && /(password)|(text)|(file)/.test(t.type.toLowerCase()))
  6. || t.tagName.toLowerCase() == 'textarea')
  7. {
  8. return true;
  9. }
  10. var k = e.keyCode ? e.keyCode : e.which ? e.which : null;
  11. if (k == 8)
  12. {
  13. if (e.preventDefault)
  14. {
  15. e.preventDefault();
  16. }
  17. return false;
  18. };
  19. return true;
  20. };
  21.  
  22. if(typeof document.addEventListener!='undefined')
  23. {
  24. document.addEventListener('keydown', killBackSpace, false);
  25. }
  26. else if(typeof document.attachEvent!='undefined')
  27. {
  28. document.attachEvent('onkeydown', killBackSpace);
  29. }
  30. else
  31. {
  32. if(document.onkeydown!=null)
  33. {
  34. var oldOnkeydown=document.onkeydown;
  35. document.onkeydown=function(e)
  36. {
  37. oldOnkeydown(e);
  38. killBackSpace(e);
  39. };
  40. }
  41. else
  42. {
  43. document.onkeydown=killBackSpace;
  44. }
  45. }
  46.  
Читайте в блоге

Раскрашиваем код на сайте. GeShi - PHP Code Colorer

Комментарии:

Войдите на сайт, чтобы оставить комментарий