JavaScript - 检测ESC键跨浏览器

时间:2011-06-30 15:19:47

标签: javascript internet-explorer keyboard-events

  

可能重复:
  Which keycode for escape key with jQuery

这段小代码就像Firefox和Opera的魅力一样。 Internet Explorer不喜欢它。

window.document.onkeydown = function (e) {   
    if (!e) {
        e = event;    
    }
    if (e.keyCode == 27) {
        myfunction();
    }
}

是不是可以在IE中检测ESC的keydown? 感谢

2 个答案:

答案 0 :(得分:4)

你有哪个版本的IE? 这段代码适用于IE(9.01):

<!doctype html>
<html>
  <head>
    <title></title>
    <script type="text/javascript">
      window.document.onkeydown = function (e)
      {
        if (!e) e = event;
        if (e.keyCode == 27)
          alert("Hello!");
      }
    </script>
  </head>
  <body>
  </body>
</html>

同时检查您的Doctype,您的IE可能会使用Quirks模式。

答案 1 :(得分:1)

有些浏览器使用e.keyCode,其他浏览器使用e.charCode。此外,这会因事件类型而异,某些浏览器(如FF)将使用一种类型的密钥,另一种类型使用另一种类型(例如字母与箭头键)

然而,在jsfiddle中测试它,看起来e.keyCode是IE9的正确检查。您正在测试哪个版本的IE?