我想更改浏览器的 F5 刷新按钮的行为 例如,当用户点击F5时,页面将不会刷新,并且会显示一些警告,目前我已尝试使用此代码(我在论坛中搜索后找到),但它不起作用,我参考jquery cdn.any想法缺少什么?
function disableF5(e) {
debugger;
alert("clicked");
if (e.which === 116 || e.keyCode === 116) {
e.preventDefault();
alert("clicked");
}
}
$(function() {
$(document).on("keydown", disableF5);
});
我也尝试过以下哪个也不起作用,不知道我在这里想念的是什么?
document.addEventListener('keydown', function(e) {
debugger;
if(e.which === 116 || e.keyCode === 116) {
alert("1234");
e.preventDefault();
}
编辑
还尝试了以下内容,但仍未在调试器中停止,我也没有看到警报(我提供的所有示例都在文档中停止)
function disableF5(e) {
if ((e.which || e.keyCode) === 116 || (e.which || e.keyCode) === 82) {
debugger;
alert("test")
e.preventDefault();
}}
$(document).ready(function() {
$(document).on("keydown", disableF5);
});
答案 0 :(得分:5)
尝试使用此方法使用JavaScript和Jquery:
function disableF5(e) {
if ((e.which || e.keyCode) == 116 || (e.which || e.keyCode) == 82)
e.preventDefault();
};
$(document).ready(function(){
$(document).on("keydown", disableF5);
});
注意:
我不建议阻止页面刷新,但我建议使用弹出警告用户关于导航离开页面,例如:
window.onbeforeunload = function() {
return "Are you sure you want to leave?";
}
source
我希望我帮助
答案 1 :(得分:1)
您确定其他代码无法干扰吗?
我在空白页面上试过这个:
<html>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
function disableF5(e) {
debugger;
alert("F5 Hit");
if (e.which === 116 || e.keyCode === 116) {
e.preventDefault();
alert("F5 Identified");
}
}
$(function() {
alert("Page loaded");
$(document).on("keydown", disableF5);
});
</script>
</html>
它做它应该做的事情
我打开了页面 =&GT;提醒“页面已加载”
我点击了F5 =&GT;警报“F5命中” =&GT;提醒“F5已识别”
由于我没有收到另一个“页面加载”警报,我说,页面没有重新加载然后我点击了F5
可能是你在其他Javascript中的某个地方覆盖文件的keydown Handler?
你收到警报吗?
编辑:
e.keyCode === 82标识“r”键...仅在使用“ctrl”键时才有意义(ctrl + r = reload)
if(e.keyCode === 82 && e.ctrlKey)