Crossbrowser CTRL + S JavaScript问题

时间:2016-06-12 12:15:33

标签: javascript jquery javascript-events cross-browser

我认为这是一个非常受欢迎的问题,但我仍然无法找到正确的解决方案。

我试图在我的textarea中按 Ctrl + s 调用函数(保存)。我发现Chrome或IE需要" keydown"和FireFox需要"按键"。

实际上,firefox注册" keydown" - 打电话给我"警告"但是请勿阻止浏览器"另存为"对话框。

我试图将两个事件都放入,然后FireFox阻止“另存为”对话框,但是两次调用我的警报。

这里的代码:

$("#mytextarea").on("keypress keydown",function(e) { 
    if ((e.which == '115' || e.which == '83' ) && (e.ctrlKey || e.metaKey)) {
         e.preventDefault();
         alert("Ctrl-s pressed");
         return false;
    }
    return true;
});

JS fiddle - try to open with FF

有没有人有真正的跨浏览器解决方案?

2 个答案:

答案 0 :(得分:0)

为了保存浏览器兼容性,您还可以使用以下javascript库之一:

以jquery为例:

答案 1 :(得分:0)

我发现提示看起来像工作解决方案: Can't override ctrl+s in Firefox using jQuery Hotkeys

看起来我应该在setTimeout中包装函数... 它现在有效。