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,火狐浏览器不支持!在线等!的主要内容,如果未能解决你的问题,请参考以下文章