[英]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.