Ctrl + S предотвращать дефолт в Chrome

Хочу пойматьCtrl+S в Chrome, и запретите поведение браузера по умолчанию для сохранения страницы. Как?

(Просто опубликовал вопрос и ответ, как я после этого довольно долго, и не нашел решения)

 epascarello12 июн. 2012 г., 19:04
возможный дубликатOverriding control+s (save functionality) in browser

Ответы на вопрос(3)

    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;
        }
    }
};
   

Решение Вопроса

Ctrl+S НЕ запускает событие нажатия клавиши, только событие нажатия клавиши.

С помощью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;
  }
});

Edit 2012.12.17 - говорит jQuery.hotkeys

Hotkeys aren't tracked if you're inside of an input element (unless you explicitly bind the hotkey directly to the input). This helps to avoid conflict with normal user typing.

 06 июл. 2012 г., 21:14
Кажется, jQuery.hotkeys не фиксирует событие, когда текстовая область или поле ввода находится в фокусе.
 25 авг. 2016 г., 16:26
Совет: не используйтеkeyup, это всегда будет вызывать диалог сохранения в первую очередь. Всегда идти заkeydown.
 zupa17 дек. 2012 г., 16:57
@ BrianM. Очень верно, спасибо. Цитируемые документы, так как это документированная «функция»
 21 окт. 2017 г., 02:02
@KaiNoack Большое спасибо! Я был озадачен тем, почему мой код не работал, но никто другой не указал на этот критический факт!

& Quot; Заимствованные & Quot; отПереопределение управления + s (сохранить функциональность) в браузере

document..keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
    e.preventDefault();
    alert('captured');
  }
}, false);
 24 июл. 2014 г., 17:00
не работает безalert

Ваш ответ на вопрос