使用JQuery捕获CTRL + S的最佳跨浏览器方法?

我的用户希望能够点击CtrlS保存表格。有没有一种跨浏览器的好方法来捕获CtrlS组合键并提交我的表格?

应用程序基于Drupal构建,因此可以使用jQuery。


哈士奇WWW
浏览 920回答 3
3回答

aluckdog

$(window).keypress(function(event) {    if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;    alert("Ctrl-S pressed");    event.preventDefault();    return false;});各个浏览器的键码可能不同,因此您可能需要检查的字符不止115个。

慕哥6287543

这适用于我(使用jquery)重载Ctrl+ S,Ctrl+ F和Ctrl+ G:$(window).bind('keydown', function(event) {    if (event.ctrlKey || event.metaKey) {        switch (String.fromCharCode(event.which).toLowerCase()) {        case 's':            event.preventDefault();            alert('ctrl-s');            break;        case 'f':            event.preventDefault();            alert('ctrl-f');            break;        case 'g':            event.preventDefault();            alert('ctrl-g');            break;        }    }});

慕田峪9158850

这个jQuery解决方案适用于Chrome和Firefox,适用于Ctrl+ S和Cmd+ S。$(document).keydown(function(e) {    var key = undefined;    var possible = [ e.key, e.keyIdentifier, e.keyCode, e.which ];    while (key === undefined && possible.length > 0)    {        key = possible.pop();    }    if (key && (key == '115' || key == '83' ) && (e.ctrlKey || e.metaKey) && !(e.altKey))    {        e.preventDefault();        alert("Ctrl-s pressed");        return false;    }    return true;}); 
打开App,查看更多内容
随时随地看视频慕课网APP