日期:2014-05-16  浏览次数:20326 次

IE和FireFox的回车就登陆的JS兼容性
<script type="text/javascript">
<!--

if(document.addEventListener){//如果是Firefox
document.addEventListener("keypress",fireFoxHandler, true);
}else{
document.attachEvent("onkeypress",ieHandler);
}

function fireFoxHandler(evt){
//alert("firefox");
if(evt.keyCode==13){
   validateLogon();
}
}

function ieHandler(evt){
//alert("IE");
if(evt.keyCode==13){
   validateLogon();
}
}

//-->
</script>
1 楼 bosshida 2010-03-24  
试了,不行
2 楼 sillycat 2010-03-26  
我的测试文件index.html如下,我的版本是
IE8.0.6001.18702
Firefox 3.6.2
我测试了下能捕捉到回车啊。可能环境有不同吧。

<html>
<head>
<title>test for fun</title>
<script type="text/javascript">
<!--

if(document.addEventListener){//如果是Firefox
document.addEventListener("keypress",fireFoxHandler, true);
}else{
document.attachEvent("onkeypress",ieHandler);
}

function fireFoxHandler(evt){
//alert("firefox");
if(evt.keyCode==13){
  validateLogon();
}
}

function ieHandler(evt){
//alert("IE");
if(evt.keyCode==13){
  validateLogon();
}
}

function validateLogon(){
// demo code
alert("succuss!")
}
//-->
</script>
</head>
<body>
programming is an art.
</body>
</html>
3 楼 bosshida 2010-04-15  
首先谢谢你先。你现在的代码行是行,但写太多,我后来找到一种方法很简单的,因为IE和FF对事件(event)的解码不同,IE是e.keyCode,FF是e.which,用下面这句就够用了
var charCode=(navigator.appName=="Netscape")?e.which:e.keyCode;
接着判断charCode==13,就可以判断是否回车了
4 楼 sillycat 2010-04-19  
恩。好的。你的方法我也收录了。谢谢:)