js中键盘事件e.which,火狐浏览器不支持!在线等!
为什么就是没有效果!js代码部分根本不运行。代码如下:<html><head><script>function_keydown(e){varkeyValue=e.char...
为什么就是没有效果!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> 展开
代码如下:
<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> 展开
2个回答
展开全部
尊敬的用户,您好!很高兴为您答疑。
在火狐下要想使这段代码生效,您需要添加如下代码:<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.
希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
在火狐下要想使这段代码生效,您需要添加如下代码:<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.
希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询