如何检测按Ctrl + R?

sad*_*ave 27 jquery controls keycode

我正在jquery中编写一个函数,如果按下Ctrl+ R就会执行,但我似乎无法找出左右ctrl键代码是什么...有人可以帮忙吗?

UPDATE

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

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

  if(e.keyCode==17){llCtrlPress=1};
   if(e.keyCode==97 && llCtrlPress=1){DO SOMETHING}
  ????????????
Run Code Online (Sandbox Code Playgroud)

这似乎可以正常工作但是如何在keyup上将llCtrlpress设置回'0'?

Ala*_*son 49

您必须使用keydown函数来捕获Ctrl字符.这是我的Ctrl+ 实现A:

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

Ctrl-R更难处理,因为在大多数浏览器中,这是重载页面,这意味着javascript没有运行,页面会刷新.

同样需要注意的是,keydown/keyupup函数中的keyCode值与keypress函数中的值不同.

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


Gab*_*abe 5

以下是您可以使用的完整密钥代码列表.


小智 5

这是我用来在IE和firefox上禁用刷新的代码(适用于F5Ctrl+ F5Ctrl+ 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>
Run Code Online (Sandbox Code Playgroud)

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

if('MozBoxSizing' in document.documentElement.style) -为Firefox返回true