【问题标题】:Javascript capturing ctrl+alt+cJavascript 捕获 ctrl+alt+c
【发布时间】:2014-01-09 18:23:13
【问题描述】:

在我的网络应用程序中,我想使用 ctrl+alt+c 作为热键。

我阅读了一堆 Stack Overflow 文章并提出了以下解决方案

$(document).keydown(function(e){
   if(e.ctrlKey && e.altKey && e.which == 99){
     e.preventDefault();
     window.prompt("Copy to clipboard: Ctrl+C, Enter", text);
   }
});

这在 chrome 中不起作用。我试过调试。

我注意到的是,当我按下 ctrl 键时,它就会进入功能,并且好像条件失败它就会出来。

我怎样才能让它工作。

【问题讨论】:

标签: javascript jquery key-bindings hotkeys


【解决方案1】:

你的代码有两个错误

1st : keycode of c is 67
2nd : text variable is undefined.

所以最终的代码是

$(document).keydown(function(e){
   if(e.ctrlKey && e.altKey &&  e.which == 67){
      e.preventDefault();
       prompt("Copy to clipboard: Ctrl+C, Enter","text");
   }
  });

你可以检查小提琴here

【讨论】:

    【解决方案2】:

    改用事件keypressExample on jsFiddle.

    $(document).keypress(function(e)
    {
        if (e.which == 8354) // ctrl+alt+c
        {
           e.preventDefault();
           console.log("success");
        }
        else
        {
            console.log("fail");
        }
        console.log(e);
    });
    

    【讨论】:

    • 奇怪......在你的小提琴上,我可以让“失败”出现,但不能成功。当我按 ctrl+alt+c 时,我什么也得不到,没有失败,没有成功。没有意义。在 chrome 中测试。也许chrome正在使用该组合键?
    • 哪个浏览器/版本?我在 IE 11、Firefox 最新、Chrome 32、i.imgur.com/9zIrZe6.png 上进行了测试
    • Chrome 版本 31.0.1650.63 m ctrl+anything 不会触发事件。它确实使用 keydown。 jsfiddle.net/M2jc2
    • 即使没有它,按下 ctrl 时它也不会触发。 jsfiddle.net/BtTr4/2
    猜你喜欢
    • 2011-02-17
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2013-02-01
    相关资源
    最近更新 更多