People still view this as it seems, so it's probably worth noting that there is no need for jQuery for this:
function keydown (event) { var isCtrlKeyDown = navigator.platform.indexOf("Mac") > -1 ? event.metaKey : event.ctrlKey, isSDown = (event.key && event.key === "s") || (event.keyCode || event.which) === 83 // falls back to keycode if no event.key if (isCtrlKeyDown && isSDown) { // prevent default event on newer browsers if (event.preventDefault) { event.preventDefault() } // ... your code here ... // prevent default event on older browsers return false } } // register the event if (document.addEventListener) { document.addEventListener("keydown", keydown) } else { document.onkeydown = keydown }
This should work in all browsers, it will also work for people using alternative keyboard layouts from QWERTY on Windows that report incorrect key codes (at least in Chrome 56 on Windows 10 in my testing)
However, this looks pretty awkward and confusing, so if you only support modern browsers, you can do the following:
document.addEventListener("keydown", function keydown (event) { if (navigator.platform === "MacIntel" ? event.metaKey : event.ctrlKey && event.key === "s") { event.preventDefault()
Xenxier
source share