代码之家  ›  专栏  ›  技术社区  ›  sadmicrowave

如何检测按下了ctrl+r?

  •  24
  • sadmicrowave  · 技术社区  · 15 年前

    我在jquery中对一个函数进行编码,如果 Ctrl键 + R 是按的,但我似乎找不到左右控制键代码是什么…有人能帮忙吗?

    更新

        ///this works
        $(document).keydown(function(e){
          if(e.keyCode==17){alert("control was pressed")};
     });
    

    下一个问题-- 如何连接控制按键和另一个按键来执行功能?

      if(e.keyCode==17){llCtrlPress=1};
       if(e.keyCode==97 && llCtrlPress=1){DO SOMETHING}
      ????????????
    

    这看起来很好,但是我该如何在keyup上将llctrlpress设置回“0”?

    9 回复  |  直到 6 年前
        1
  •  44
  •   Fabrizio RAHUL S R    7 年前

    你必须使用 键盘按下 陷阱函数 Ctrl键 字符。这是我的实现 Ctrl键 + :

        $(document).keydown(function(e) {
            if (e.keyCode == 65 && e.ctrlKey) {
                alert('ctrl A');
            }
        });
    

    ctrl-r更难,因为在大多数浏览器中, 重新加载页面 这意味着javascript没有运行,页面被刷新。

    只是一张便条 密钥代码 键控/键控功能中的值与键控功能中的值不同。

    编辑: 删除了ctrl变量,忘记了ctrlkey

        2
  •  5
  •   Marko K Gabe    9 年前

    Here 是您可以使用的全部密钥代码列表。

        3
  •  4
  •   Fabrizio RAHUL S R    7 年前

    这是我用来在IE和火狐上禁用刷新的代码(这对 F5 , Ctrl键 + F5 Ctrl键 + R )

    <script language="javascript" type="text/javascript">
        //this code handles the F5/Ctrl+F5/Ctrl+R
        document.onkeydown = checkKeycode
        function checkKeycode(e) {
            var keycode;
            if (window.event)
                keycode = window.event.keyCode;
            else if (e)
                keycode = e.which;
    
            // Mozilla firefox
            if ($.browser.mozilla) {
                if (keycode == 116 ||(e.ctrlKey && keycode == 82)) {
                    if (e.preventDefault)
                    {
                        e.preventDefault();
                        e.stopPropagation();
                    }
                }
            } 
            // IE
            else if ($.browser.msie) {
                if (keycode == 116 || (window.event.ctrlKey && keycode == 82)) {
                    window.event.returnValue = false;
                    window.event.keyCode = 0;
                    window.status = "Refresh is disabled";
                }
            }
        }
    </script>
    

    如果不想使用useragent来检测它是什么类型的浏览器($.browser使用navigator.useragent来确定平台),则可以使用

    if('MozBoxSizing' in document.documentElement.style) -对于firefox返回true

        4
  •  2
  •   lincolnk    15 年前

    你为什么不用 e.ctrlKey ?

     if (e.keyCode == 65 && e.ctrlKey) {
         alert('ctrl A');
     }
    

    编辑:这里有一个适当的功能来检测你的ctrl-r按键并阻止浏览器重新加载。

    function keydown(e) {
        if (e.ctrlKey && e.keyCode == 82) {
            // 82 = r
    
            // TODO: your thing.
    
            if (e.preventDefault) {
                e.preventDefault();
            }
            else {
                return false;
            }
        }
    }
    

    我是jquery的新手,我想你会的。

    $(document).keydown(keydown);
    

    对吗?

        5
  •  1
  •   Josh Stodola    15 年前

    存在一个名为 ctrlKey 你应该可以在这里使用…

    $(document).keypress(function(e) { 
       alert("Ctrl is pressed: " + e.ctrlKey); 
    }); 
    
        6
  •  1
  •   Gibolt    7 年前

    使用 event.key 和现代JS!

    $(document).keypress(function(event) {
        if (event.key === "r" && event.ctrlKey) {
            // Do something
        }
    });
    

    或者没有jquery:

    document.addEventListener("keypress", function onEvent(event) {
        if (event.key === "r" && event.ctrlKey) {
            // Do something better
        }
    });
    

    Mozilla Docs

    Supported Browsers

        7
  •  1
  •   ata NOURDINE BENLKAMLE    7 年前
     $(document).ready(function () {
         $(document).keyup(function (e) {
             if (e.keyCode == 81 && e.ctrlKey) { //CTRL+Q
                 alert("CTRL+Q");
             } else if (e.keyCode == 27) { //ESCAPE
                 alert("escape");
             } else if (e.keyCode == 67 && e.altKey) { // ALT+C
               alert("ALT+C");
            }     
        });
    });
    

    key codes

        8
  •  0
  •   Fabrizio RAHUL S R    7 年前

    的密钥代码 Ctrl键 关键是 11 .

    $(document).keypress(function(e) { 
    
    
      alert("Ctrl is pressed: " + e.ctrlKey); 
    }); 
    
        9
  •  0
  •   Murugan    6 年前
    @HostListener('window:keydown', ['$event'])
      keyEvent(event: KeyboardEvent) {
    
       if (event.ctrlKey && event.keyCode == 82)
        {
    
        }
      }
    
    推荐文章