函数表达式/事件检测不工作在< = 9或Safari中

时间:2014-04-02 11:39:02

标签: javascript function internet-explorer safari named

我一直在寻找这个答案大约一天,我有一个功能,只是在IE9或以下或Safari中工作。我认为这是因为它是由键盘事件触发的。它还将事件传递给函数,因此onkeyup函数可以检查值并相应地执行操作。

我很想知道是否有人可以告诉我问题是什么,功能如下:

window.onkeyup = function(e) { //This doesn't seem to work in the above browsers

   var key = e.keyCode ? e.keyCode : e.which; //But neither does this

   if (key == 83 && array.length>=0) {

        // Log answer as 'S'

   }else if (key == 68 && array.length>=0) {

        //Log answer as 'D'

   }

}   

任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

可能是因为array未在代码中定义,至少在此处可见代码部分。 尝试颠倒条件,然后可能会有效。

(e.which) ? e.which : e.keyCode

其他想法是在之前的比较中使用e之前使用下面的代码:

 if (window.event){
   e = window.event.keyCode;}
   else if (event.charCode) {
    e = event.charCode;}
   else if (event.which){
   e = event.which; } 
 }