簡體   English   中英

keydown在Firefox中不起作用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM