我有一些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);
};
}
答案 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
事件。