似乎是 Firefox 中的一个错误,它alert
破坏了代码的同步性。延迟警报似乎可以解决此问题:
$(document).bind('keydown', 'Ctrl+s', function(event) {
setTimeout(function() {
alert('saving?');
}, 0);
return false;
});
JSbin
这是一个测试用例来证明我的错误声明。
$(document).bind('keydown', 'Ctrl+s', function(event) {
event.preventDefault();
});
以上(bin)将很好地阻止保存对话框。现在,如果你在它之前或之后添加一个警报,如果你这样做,保存对话框仍然会出现event.preventDefault()
and event.stopImmediatePropagation()
or return false
:
$(document).bind('keydown', 'Ctrl+s', function(event) {
event.preventDefault();
event.stopImmediatePropagation();
alert('saving?');
return false;
});
斌
event.preventDefault()
如果没有alert
s,它本身就足以阻止保存对话框,现在通过警报可以阻止默认操作。