0

我有一个运行某种东西的 JS 应用程序。

我想禁用ctrl+ rf5所以我没有刷新浏览器。

我完全禁用ctrl+r并用我自己的处理替换禁用的f5刷新(ajax、对 RAP、DB 的调用等)

这两种机制在 FF、Chrome、Opera 和 Safari 上都能正常工作。
这意味着我可以使用垃圾邮件机器人组合键,并且一切正常。

但是在 IE 9 中,当我按f5顺序快速按顺序进行时,它确实会定期刷新,这对我来说意味着 IE 9 需要很长时间才能进行操作,并且它还没有为下一个 keydown 功能做好准备。

$(document).keydown(function (event) {
    if ((event.ctrlKey == true && (event.keyCode == 17 || event.keyCode == 82)) || (event.keyCode == 116)) {
        event.preventDefault();
        if (event.keyCode == 116) {
            // Here is the own Reload Logic which contains calls on DB and Server.              
        }
        if ($.browser.msie) {
            window.event.stopPropagation();
            window.event.keyCode = 0;
            window.event.returnValue = false;
            window.event.cancelBubble = true;
        }
    }
});

是否有可能f5在 IE 9 中以某种方式将其管理为快速按下(因此它一直被禁用)?

4

1 回答 1

4

您只能使用 WebBrowserShortcutsEnabled 来阻止 F5,但您将终止浏览器在该页面上的所有其他快捷方式。您应该尝试阻止人们离开网页的过程。这会更有成效地实现您想要实现的目标。

window.onbeforeunload = function() {
    return "You are trying to leave.";
}

这不应该用作安全措施,就像学生参加网络测试/考试一样。但如果只是为了防止意外刷新,这应该可以解决问题。

于 2013-02-01T13:27:23.213 回答