我正在使用jQuery的keyup
事件。它除了 F5 以外的所有键都能正常工作。
这是代码:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).keyup(function(e){
alert(e.keyCode); // This is not working always when we press F5
});
});
</script>
</head>
</html>
我按下所有键时会收到警报,但是 F5 无法正常工作。 有时会使用 F5 触发警报,有时不会。我在Chrome和Firefox上试过这个。
答案 0 :(得分:8)
按 F5 重新加载页面。
似乎页面重新加载是在keydown
或keypress
事件中启动的,因此您的alert
触发太晚。根据您按键的时间长短,mouseup
事件仍然会被触发,并且警报会短暂显示,但它不会阻止重新加载过程。
如果您将处理程序绑定到keydown
事件,则仅在警报解除后才执行页面重新加载。
DEMO(首先点击空的HTML区域,确保它集中注意力)
答案 1 :(得分:0)
如果你抓住了&#39;按键&#39;事件,你也阻止了&#39;键。出于某种原因,如果您使用&#39;按键,则会捕获键码和ASCII键码。事件(您无法在chrome调试器中看到)。 F5键是&#39; 116&#39;但是用于&#39;#&#39;也是116,所以使用&#39;按键&#39;你阻止F5的事件,但你也阻止&#39; t&#39;应用范围。
所以,试试这个:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).bind('keyup', function(e) {
alert(e.keyCode);
});
$(document).bind('keypress', function(event) {
if (event.keyCode == 116){
alert("f5");
}
});
});
</script>