阻止用户在弹出窗口中按f5按钮

时间:2013-08-15 13:26:56

标签: javascript keyboard-shortcuts remap browser-refresh

由于在我的项目中运行考试测试,我想阻止用户按下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;
    }
}

3 个答案:

答案 0 :(得分:1)

试试这个

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");
    }
}

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

如果你想要的是压制你的网页,那么你应该问为什么你需要这个。如果不重新发送已发送的数据,那么您应该使用不同的php文件来处理数据,使用不同的文件将其显示给用户。这样你可以检查是否有任何错误并相应地重定向他。

如果由于某些特定原因需要通过F5防止刷新,那么Cobra_Fast建议e.preventDefault();应该做什么。