防止用户按下弹出窗口中的f5按钮

Prevent user pressing f5 button in pop up window

本文关键字:窗口 f5 按钮 用户      更新时间:2023-09-26

我想防止用户因为在我的项目中运行考试测试而按下F5按钮。

如果我使用普通的浏览器窗口,我的代码可以正常工作,但现在我想在弹出窗口中使用它——在弹出窗口里我的代码不工作。我的代码是:

document.onkeydown=function(e) {
    var event = window.event || e;
    if (event.keyCode == 116) {
        event.keyCode = 0;
        alert("This action is not allowed");
        return false;
    }
}

尝试这个

myWindow=window.open('','','width=200,height=100');
myWindow.document.write("<p>This is 'myWindow'</p>");
myWindow.focus();
myWindow.onkeydown=function(e) {
    var event = window.event || e;
    if (event.keyCode == 116) {
        event.preventDefault();
        alert("This action is not allowed");
    }
}
document.onkeydown = function(e){
    var event = (window.event || e);
    if(event.keyCode==116){
        event.preventDefault();
        alert("This action is not allowed");
    }
}

您不需要这部分代码:event.keyCode = 0;-按键后更改按键代码不会影响任何内容。

如果您想要的是支持刷新网页,那么您应该询问为什么需要这样做。如果是为了不重新发送已经发送的数据,那么您应该使用不同的php文件来处理数据,并使用不同的文件来向用户显示数据。通过这种方式,你可以检查是否有任何错误,并相应地重定向他。

如果您出于某种特定原因确实需要阻止通过F5刷新,那么Cobra_Fast建议的e.preventDefault();应该可以做到这一点。