我正在使用jQuery Hotkeys插件:http://code.google.com/p/js-hotkeys/
以下是我正在使用的代码:
$(document).bind('keydown', 'Ctrl+s', function(event) { alert('saving?'); return false; });
在Chrome中,它工作正常,Ctrl + s默认功能被覆盖,但在Firefox中,它会触发警报,并且还会尝试保存html页面。
我知道必须有一些方法才能让它工作,Firefox中的Wordpress让你按ctrl + s保存。
有什么想法吗?
答案 0 :(得分:9)
似乎是Firefox中的一个错误alert
打破了代码的同步性。延迟警报似乎解决了这个问题:
$(document).bind('keydown', 'Ctrl+s', function(event) {
setTimeout(function() {
alert('saving?');
}, 0);
return false;
});
这是一个测试案例来证明我的错误声明。
$(document).bind('keydown', 'Ctrl+s', function(event) {
event.preventDefault();
});
以上(bin)将很好地阻止保存对话框。现在,如果您在其之前或之后添加提醒,则如果您执行event.preventDefault()
和event.stopImmediatePropagation()
或return false
, 会显示保存对话框:
$(document).bind('keydown', 'Ctrl+s', function(event) {
event.preventDefault();
event.stopImmediatePropagation();
alert('saving?');
return false;
});
如果没有event.preventDefault()
, alert
本身足以阻止保存对话框,现在有警报可以阻止默认操作。
答案 1 :(得分:1)
这对我有用:
<script>
$(document).bind('keypress', 'Ctrl+s',
function (event) {
event.preventDefault();
alert('saving?');
});
</script>