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

时间:2013-11-06 00:20:22

标签: javascript

我有一些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);
    };
}

2 个答案:

答案 0 :(得分:1)

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

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

以上代码适用于我:http://jsfiddle.net/s66JK/

答案 1 :(得分:0)

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

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