Here is my code:
function pauseSound() {
    var pauseSound = document.getElementById("backgroundMusic");
    pauseSound.pause(); 
}
I would like to add a keyboard shortcut to this code, how can I do this so that the function can also be executed when a button is clicked too?
Tried to add an else if statement but it doesn't work, any ideas?
function doc_keyUp(e) {
    if (e.ctrlKey && e.keyCode == 88) {
        pauseSound();
    }
    else if (e.ctrlKey && e.keyCode == 84) {
        playSound();
    }
}
                You can customize keyboard shortcuts (or shortcut keys) by assigning them to a command, macro, font, style, or frequently used symbol. You can also remove keyboard shortcuts. You can assign or remove keyboard shortcuts by using a mouse or just the keyboard.
You can add a hotkey to any software or website shortcut on the Desktop. Right-click the desktop shortcut and select Properties from the menu. Click the Shortcut key box and enter a new keyboard shortcut for the program or web page. Just enter a letter there to set up the new hotkey.
An event handler for the document's keyup event seems like an appropriate solution.
Note: KeyboardEvent.keyCode was deprecated in favor of key.
// define a handler
function doc_keyUp(e) {
    // this would test for whichever key is 40 (down arrow) and the ctrl key at the same time
    if (e.ctrlKey && e.key === 'ArrowDown') {
        // call your function to do the thing
        pauseSound();
    }
}
// register the handler 
document.addEventListener('keyup', doc_keyUp, false);
                        If you want to trigger an event after pressing a key, try:
In this example press ALT+a:
document.onkeyup = function () {
  var e = e || window.event; // for IE to cover IEs window event-object
  if(e.altKey && e.which == 65) {
    alert('Keyboard shortcut working!');
    return false;
  }
}
Here is a fiddle: https://jsfiddle.net/dmtf6n27/38/
Please also note there is a difference for the keycode numbers, whether you are using onkeypress or onkeyup. W3 Schools' "KeyboardEvent keyCode" Property has more information.
//For single key: Short cut key for 'Z'
document.onkeypress = function (e) {
    var evt = window.event || e;
    switch (evt.keyCode) {
        case 90:  
            // Call your method Here
            break;
    }
}
//For combine keys like Alt+P
document.onkeyup = function (e) {
    var evt = window.event || e;   
        if (evt.keyCode == 80 && evt.altKey) {
            // Call Your method here   
        }
    }
}
    //ensure if short cut keys are case sensitive.
    //    If its not case sensitive then
    //check with the evt.keyCode values for both upper case and lower case. ......
                        Here's my solution:
HTMLElement.prototype.onshortcut = function(shortcut, handler) {
    var currentKeys = []
    
    function reset() {
        currentKeys = []
    }
    function shortcutMatches() {
        currentKeys.sort()
        shortcut.sort()
        return (
            JSON.stringify(currentKeys) ==
            JSON.stringify(shortcut)
        )
    }
    this.onkeydown = function(ev) {
        currentKeys.push(ev.key)
        if (shortcutMatches()) {
            ev.preventDefault()
            reset()
            handler(this)
        }
    }
    this.onkeyup = reset
}
document.body.onshortcut(["Control", "Shift", "P"], el => {
    alert("Hello!")
})
currentKeys; these are the keys that will are being held down at that moment.onkeydown, it is added to the currentKeys array.onkeyup, the array is reset meaning that no keys are being pressed at that moment.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With