To prevent the default behavior when Ctrl+S is Pressed in Chrome, we can use the jQuery bind
method to listen to the keydown
event.
Then in the keydown
event handler, we can check if Ctrl+S is pressed.
And if it’s pressed, we return false
and call preventDefault
.
For instance, we can write:
$(document).bind('keydown', (e) => {
if (e.ctrlKey && (e.which === 83)) {
e.preventDefault();
return false;
}
});
We call bind
on $(document)
to listen to the keydown
event on the whole document.
In the event handler, we check is the Ctrl key is pressed with e.ctrlKey
.
And we check if the S key is pressed with e.which
. 83 is the key code for the S key.
If both are true, then we call e.preventDefault
to stop the default behavior.
And we also return false
.
To do the same thing with plain JavaScript, we can use the document.addEventListener
method.
To use it, we write:
document.addEventListener("keydown", (e) => {
if (e.key === 's' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
e.preventDefault();
}
});
We check if e.key
is 's'
to check if the S key is pressed.
And we check if the Ctrl or Command key is pressed with (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)
.
We check if the code is run on a Mac with navigator.platform.match("Mac")
and check the key pressed accordingly.
If both are true, we call e.preventDefault
.