How to detect that Ctrl+R was pressed?

后端 未结 10 831
逝去的感伤
逝去的感伤 2020-12-08 14:27

I\'m coding a function in jquery that executes if Ctrl+R is pressed but I can\'t seem to find out what the left and right ctrl keycodes are... Can some

相关标签:
10条回答
  • 2020-12-08 15:09

    The Key Code for Ctrl key is 11.

    $(document).keypress(function(e) { 
    
    
      alert("Ctrl is pressed: " + e.ctrlKey); 
    }); 
    
    0 讨论(0)
  • 2020-12-08 15:11

    why aren't you using e.ctrlKey ?

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

    edit: here's an appropriate function to detect your ctrl-r keypress and stop the browser from reloading.

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

    i'm a jquery newbie, i think you'd do

    $(document).keydown(keydown);
    

    right?

    0 讨论(0)
  • 2020-12-08 15:16

    There is a boolean property called ctrlKey that you should be able to use here...

    $(document).keypress(function(e) { 
       alert("Ctrl is pressed: " + e.ctrlKey); 
    }); 
    
    0 讨论(0)
  • 2020-12-08 15:18

    You have to use the keydown function to trap Ctrl characters. Here is my implementation of Ctrl+A:

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

    Ctrl-R is tougher because in most browsers, that is Reload Page, which means the javascript doesn't run, the page is refreshed.

    Just a note as well, the keyCode value are different in the keydown/keyupup functions than in the keypress functions.

    EDIT: Removed ctrl variable, forgot about ctrlKey

    0 讨论(0)
提交回复
热议问题