[英]keydown not working in firefox
<script>
function MoveNext(e, obj) {
if (!e) var e = window.event;
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
if (code == 13) {
document.getElementById(obj).focus();
return false;
}
</script>
上面的代码在IE中有效,但在mozilla中不起作用,为什么
确切地说,返回键的最佳代码取决于您正在侦听的键盘事件(按下键,按下键,按下键)。 对于按键,您可以这样操作:
function MoveNext(e, obj) {
e = e || window.event;
var code = e.which || e.keyCode;
if (code == 13) {
document.getElementById(obj).focus();
}
}
注意:我已经删除了局部变量e
所以它不会与参数e
混淆,并且我已将code
定义为局部变量,而您将其作为隐式全局变量使用(从来都不是一件好事)。
此处介绍了有关跨浏览器键处理的更多信息: keycode和charcode 。
更改
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
至
code = (e.keyCode)? e.keyCode: e.charCode;
并确保在调用事件时将事件传递给moveNext,因为只有在从函数显式发送事件后,firefox才能识别事件。
同样,如果您正在做keydown的对象是一个div,则将tabindex设置为0,这样它就可以获取焦点。
<div id="mydiv" tabindex="0"></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.