如何防止操作系统“另存为”对话框在输入 Ctrl S 时弹出

How to keep the OS "Save As" dialog from poppng up when Ctrl S is entered

本文关键字:另存为 Ctrl 输入 对话框 操作系统 何防止      更新时间:2023-09-26

我有一些JavaScript由Ctrl + S触发并保存本地结构,在下面调用"group"。但是,尽管代码的最后三行,操作系统(Windows 7)"另存为"对话框还是会弹出。有没有办法防止操作系统弹出其"另存为"对话框?

谢谢

 $(document).on('keydown',function(e) { 
    if ( e.ctrlKey && e.keyCode == 83 ) {  // CTRL+S - save group
        var raw_groupName = prompt("Group Name: ", g.last_groupName); 
        var groupName = raw_groupName.replace(/ /g,"_");
        saveGroup(groupName);
        e.stopPropagation();
        e.preventDefault();
        return (false);
    };
}

我监听了keydown事件并将侦听器附加到window对象。

window.addEventListener('keydown', function (evt) {
    if (evt.ctrlKey && evt.keyCode === 83) {
        evt.preventDefault();
    }
}, false);

上面的代码对我有用:http://jsfiddle.net/s66JK/

您可能正在收听onkeypress事件,该事件将始终为您提供等于 0 的e.keyCode。您是否尝试过在if内放置断点?这很可能总是错误的。 onkeypress使用e.charCode .

我尝试了您的代码,它适用于onkeydown事件。