javascript - Firefox onkeydown 检测按下的键

标签 javascript html firefox

从输入文本我需要调用一个函数来捕获 onkeydown 事件并且我需要将一个参数传递给该事件,例如:

<input type="text" onkeydown="TextOnKeyDown('myPrefix');" />...

然后在那个函数中我需要知道按下了什么键。我用

function TextOnKeyDown(prefix) {
    var key = event.keyCode; 
    ...
}

这在 IE 中很有效,但在 Firefox 中却不行。我读过,对于 Firefox,你必须将一个参数传递给处理程序,然后使用它来获取 key ,类似于:

<input type="text" onkeydown="detectKey(event)"/>
...
function detectKey(e){
     var key = (document.all) ? e.keyCode : e.which; 
     ...    
} 

但我无法为 firefox 传递我的参数和所需的事件参数。有什么建议吗?

最佳答案

我昨天写的,适用于 FF 和 IE =>

//execute this during initialization
document.onkeydown = function(event) {
    var holder;
    //IE uses this
    if(window.event) {
        holder = window.event.keyCode;
    }
    //FF uses this
    else {
        holder = event.which;
    } 
    keyz(holder);
}

function keyz(key) {
    if(key === /*desired code*/) {
        /*execute stuff*/
    }
}

您需要用 [您的输入].onkeydown 替换 document.onkeydown

关于javascript - Firefox onkeydown 检测按下的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/642040/

相关文章:

javascript - 如何使用javascript根据字符数分割字符串

javascript - 仅使用 HTML/JavaScript 创建购物车

javascript - 未捕获的类型错误 : Object #<Object> has no method 'password_strength'

javascript - "This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning"

html - 为什么 firefox "responsive design tool"和现实生活中的手机有区别

javascript - 使用 AngularJS Ng-if 函数的 HTML DOM

javascript - 传单:如何在传单1中设置不可点击?

javascript - 使用 Jquery 进行注释

javascript - new Function 和 eval 之间的奇怪交互

javascript - 在 html5 视频播放按钮上添加事件