让window.event.keyCode兼容Firefox

 

转自:http://hi.baidu.com/shenme2063/blog/item/c328b223a35ef7fed7cae2be.html

1.window.event.keyCode的用法:设置或获取与导致事件的按键关联的 ASCII 按键代码。
示例:
XML/HTML代码

  1. <input type="text" onkeydown="javaScript:if(window.event.keyCode==13) kenNumIE();" />  
  2. <script language="javascript" type="text/javascript">  
  3. function kenNumIE(){  
  4.      alert("你按的是回车键!");  
  5. }  
  6. </script>

说明:当把光标置入输入框后按回车键,就会触发kenNumIE()事件。(回车键的ASCII是13)
但是该方法只对IE有效,原因是Firefox的window对象没有event属性,所以window.event是不存在的,Firefox只能在事件句柄函数的第一个参数获取事件对象。

2.兼容Firefox的方法:

XML/HTML代码

<input type="text" onkeydown="return keyNumAll(event);" >  

<script language="javascript" type="text/javascript">  

function keyNumAll(evt){

evt = (evt) ? evt : ((window.event) ? window.event : ""); //兼容IE和Firefox获得keyBoardEvent对象
var k = evt.keyCode?evt.keyCode:evt.which;//兼容IE和Firefox获得keyBoardEvent对象的键值

     if(k == 13){  

         alert("你按的是回车键!");  

}  

}  

</script>

这样,当你按回车键时,就可以触发keyNumAll(event)事件了。

3.在现实中的应用:
只让输入框接受数字输入:

XML/HTML代码

<script language="javascript" type="text/javascript">  

function inputNum(evt){  

    evt = (evt) ? evt : ((window.event) ? window.event : "");  

     var k = evt.keyCode?evt.keyCode:evt.which;

     if((k<=57) && (k>=48)){  

         return true;  

     }else{  

         alert("只能输入数字!");  

         return false;  

     }  

}  

</script>  

<input type="text" onKeyPress="return inputNum(event);" >

于是代码终于可以在IE和Firefox运行了。
总结一下需要注意的地方:
1. 取得keyBoardEvent对象
2. 取得keyBoardEvent对象的键值
3. οnkeypress="myKeyPress(event)" 函数需要一个参数,并且参数的名称为event.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值