キャッチしたい Ctrl+S Chromeで、デフォルトのブラウザの動作を防止してページを保存します。どうやって?
(質問と回答を投稿するだけで、この後かなり長い間、解決策が見つかりませんでした)
私が見る限り、秘密のソースは、 Ctrl+S keypressイベントは発生せず、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は言う
入力要素の内部にいる場合、ホットキーは追跡されません(明示的にホットキーを入力に直接バインドしない限り)。これにより、通常のユーザー入力との競合を回避できます。
ブラウザのcontrol + s(機能の保存)のオーバーライド からの「借用」
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;
}
}
};