从输入文本我需要调用一个函数来捕获onkeydown事件,我需要将一个参数传递给该事件,例如:
...
然后在该功能中我需要知道按下了什么键.我用
function TextOnKeyDown(prefix) { var key = event.keyCode; ... }
这就像IE中的魅力一样,但在Firefox中则不然.我已经读过,对于firefox,你必须将一个参数传递给处理程序然后用它来获取密钥,类似于:
... 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
我在firefox中使用它,它的工作原理:
然后是js funcion:
function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : evt.keyCode if(charCode==37||charCode==39||charCode==46)return true; if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; }
所提出的解决方案都没有像我需要的那样工作,除了Firefox的必要"事件"参数之外还添加我自己的参数来获取keyCode.无论如何,帮助,谢谢你们.我为未来的读者提出了最终解决方案:
最后我只需要向调用者添加"event"参数:
和处理程序:
function TextOnKeyDown(prefix, evt) { var key = (evt.which) ? evt.which : evt.keyCode; ... }
不知怎的,它以前没用,我不知道为什么.