2

我想防止用户因为在我的项目中运行考试测试而按下 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;
    }
}
4

3 回答 3

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");
    }
}
于 2013-08-15T13:39:02.853 回答
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 不会影响任何内容。

于 2013-08-15T13:39:28.120 回答
0

如果你正在寻找的是抑制你的网页刷新,那么你应该问为什么你需要这个。如果是为了不重新发送已经发送的数据,那么您应该使用不同的 php 文件来处理您的数据,并使用不同的文件将它们显示给您的用户。通过这种方式,您可以检查是否有任何问题并相应地重定向他。

如果您出于某种特定原因确实需要阻止通过 F5 刷新,那么 Cobra_Fast 建议的内容e.preventDefault();应该可以解决问题。

于 2013-08-15T13:34:54.927 回答