js中键盘事件e.which,火狐浏览器不支持!在线等!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中键盘事件e.which,火狐浏览器不支持!在线等!相关的知识,希望对你有一定的参考价值。

为什么就是没有效果!js代码部分根本不运行。
代码如下:
<html>
<head>
<script>
function _keydown(e)
var keyValue = e.charCode || e.which || e.keyCode;
document.getElementById("test").style.background = "green";
document.getElementById("test").innerHTML = keyValue;

</script>
</head>
<body onkeydown="_keydown()">
<div id="test">yjf</div>
</body>
</html>

  尊敬的用户,您好!很高兴为您答疑。
  在火狐下要想使这段代码生效,您需要添加如下代码:<body onkeydown="_keydown(event)">.
  原因如下:
  onkeydown的处理方式,ie和火狐 (firefox)就不同,不得不做些小的处理。
document.onkeydown=function(e)var keyCode;if(window.event)
keyCode=event.keyCode;else
keyCode=e.which;if(keyCode==13)
alert("回车");else
alert(keyCode);
  注意代码中的处理分支,ie是支持event.keyCode,而firefox不支持event和keycode而转而支持事件处理程序的传入参数和which。
  因此如果你单纯的使用e.keyCode在firefox中是无法执行的。
  PS:在IE中event作为window对象的一个属性已经呗定义因此可以直接使用,不过在Firefox中是通过传参的方法来传播的,比如上面示例中的传入参数e.
  希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
参考技术A 你好,在 <body onkeydown="_keydown(event)">传入event为参数就可以了本回答被提问者采纳

火狐下 event.which 还是不管用啊

js文件里面有 document.onkeydown = func; 有一个函数 function() funcvar KEY = event.keyCode || event.which;然后下面再对按键进行处理,但是发现在firefox下还是不管用啊。 高手指点一下

  您好,感谢您对火狐的支持

火狐不支持这个属性,可以用这个替代:
  var keycode = e.which ? e.which : e.keyCode;用这句替换,然后判断keycode这个变量。
  您可以在火狐官方网站下载火狐浏览器,在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
参考技术A 在春天……
仿佛握着一枚不会逃跑的钻戒,完全不理会我的恐惧。
和坚硬的桦树
我想让它们完结,
冷漠,在你来临之前潜逃
他来的这中,哈哈本回答被提问者和网友采纳

以上是关于js中键盘事件e.which,火狐浏览器不支持!在线等!的主要内容,如果未能解决你的问题,请参考以下文章

回车登录(支持IE 和 火狐等浏览器)

e.which

关于用jquery如何模拟执行键盘按键

JS中常遇到的浏览器兼容问题和解决方法

js绑定事件和解绑事件

原生js中6种常见的兼容问题以及解决方案