1

Ctrl我有一些由+触发S并保存本地结构的 JavaScript,在下面调用“组”。但是尽管代码的最后三行,操作系统(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);
    };
}
4

2 回答 2

1

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

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

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

于 2013-11-06T00:57:15.337 回答
0

您可能正在收听onkeypress总是给您e.keyCode等于 0 的事件。您是否尝试过在您的 ? 中放置一个断点if?它很可能总是错误的。onkeypress使用e.charCode.

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

于 2013-11-06T01:04:26.570 回答