在Chrome中按Ctrl + S preventDefault

我想在Chrome中捕获Ctrl + S ,并阻止默认浏览器行为来保存页面。 怎么样?

(只是发布问题和答案,因为我在这之后很长一段时间没有找到解决方案)

据我所见,秘诀就是, Ctrl + S不会触发按键事件,只触发keydown事件。

使用jQuery.hotkeys :

$(document).bind('keydown', 'ctrl+s', function(e) { e.preventDefault(); alert('Ctrl+S'); return false; }); 

只有jQuery:

 $(document).bind('keydown', function(e) { if(e.ctrlKey && (e.which == 83)) { e.preventDefault(); alert('Ctrl+S'); return false; } }); 

编辑2012.12.17 – jQuery.hotkeys说

如果您在输入元素内部,则不会跟踪热键(除非您将热键直接绑定到输入)。 这有助于避免与普通用户输入冲突。

浏览器中的Overriding control + s(保存function) “借用”

 document.addEventListener("keydown", function(e) { if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) { e.preventDefault(); alert('captured'); } }, false); 
 document.onkeydown = function (e) { e = e || window.event;//Get event if (e.ctrlKey) { var c = e.which || e.keyCode;//Get key code switch (c) { case 83://Block Ctrl+S e.preventDefault(); e.stopPropagation(); break; } } };