我能够检测到Ctrl + R但无法停止重新加载页面。
请帮我解决这个问题。
我正在使用此代码。
$(document).keydown(function(e) {
if (e.keyCode == 65+17 && e.ctrlKey) {
alert('ctrl R');
exit;
return ;
}
});
提前致谢。
答案 0 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(function () {
document.onkeydown = KeyPress;
function KeyPress(e) {
console.log(e);
var press = window.event? event : e
if (press.keyCode == 82 && press.ctrlKey) alert("Ctrl+R");
if ($.browser.mozilla) {
if (e.ctrlKey && keycode == 82) {
if (e.preventDefault)
{
e.preventDefault();
e.stopPropagation();
}
}
}
if ($.browser.msie) {
if (window.event.ctrlKey && press.keycode == 82) {
window.event.returnValue = false;
window.event.keyCode = 0;
window.status = "Refresh is disabled";
}
}
}
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>
</body>
</html>
答案 1 :(得分:0)
帮助用户阻止不需要的页面重新加载的标准/清洁方式是通过覆盖键事件来beforeunload和而不是,这实际上是徒劳的:你不知道什么键组合调用页面重新加载(例如,f5在大多数浏览器中都相似),他可能会按CTRL + R并且位置栏聚焦,这样你的页面就没有被捕获的事件,他可能已按下工具栏按钮......
从链接的MDN页面提到标准方法
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
e.returnValue = confirmationMessage; // Gecko, Trident, Chrome 34+
return confirmationMessage; // Gecko, WebKit, Chrome <34
});
这会在用户尝试重新加载/关闭/离开您的页面时提示用户,无论是什么启动卸载。