如何在IE和Firefox里屏蔽BackSpace

disablebackspace

如何在IE和Firefox里屏蔽BackSpace键

在网页上输入信息,特别是注册的时候,如果输入的焦点不在输入框里的话,按BackSpace键,IE和Firefox以及许多浏览器都会理解为”后退”命令,返回上一页。这样的话,刚才输入的内容就全没了。这是非常让人泄气的事儿,为了在自己设计的页面里,给用户更好的使用体验,有必要屏蔽掉这个功能。

其实,在GMail,Google Document等许多基于Web的应用都对这个问题作了相应的处理。当这种操作发生时,出项一个警告,提示用户是否真的想放弃当前页面上输入的内容。这个屏蔽功能其实很简单,只要在你写的html里加上一段Javascript代码就行了。让javascript代码检查用户的输入事件,如果发生了输入焦点不在输入框的时候,用户按下了Backspace键,那就触发相应的代买来处理就行了。但,需要注意的是IE和Firefox的事件处理方法不同,API也不一样,需要区别对待。做Web应用最让人恼火是莫过于此了。为了适应各种浏览器,不得不写各种对应代码,然后在各种浏览器上做测试。如果Web应用还有手机可以浏览的功能,那就更麻烦了。现在市场上,几乎每天都在发布新的手机,为了不出问题,你就必须定期的在所有的新手机上做测试。这是让人抓狂啊。要是有统一的标准该多好。
好像跑题了,呵呵,演过正传,下面就是实例代码,在IE7和Firefox3测试通过。

  1. <script type="text/javascript"><!--
  2. // For IE
  3. if (typeof window.event != 'undefined') {
  4.   document.onkeydown = function() {
  5.     var type = event.srcElement.type;
  6.     var code = event.keyCode;
  7.     return ((code != 8 &#038;& code != 13) ||
  8.             (type == 'text' &#038;& code != 13 ) ||
  9.             (type == 'textarea') ||
  10.             (type == 'submit' &#038;& code == 13))
  11.   }
  12. } else { // FireFox/Others
  13.   document.onkeypress = function(e) {
  14.     var type = e.target.type;
  15.     var code = e.keyCode;
  16.     if ((code != 8 &#038;& code != 13) ||
  17.         (type == 'text' &#038;& code != 13 ) ||
  18.         (type == 'textarea') ||
  19.         (type == 'submit' &#038;& code == 13)) {
  20.         return true
  21.     } else {
  22.         alert('你真的想放弃现在正在编辑的内容吗?再想想!');
  23.         return false
  24.     }
  25.   }
  26. }
  27. // --></script>

相关文章

web design, 网络

Leave Comment

(必需)

(必需)