我可以使用哪些方法在Internet Explorer中禁用Alt+*X*

What are the means I can use to disable Alt + *X* in Internet Explorer?

本文关键字:Alt+ Explorer 可以使 方法 我可以 Internet      更新时间:2023-09-26

从本质上讲,在我们的系统中,我们的用户输入报告,他们会找到各种方式来意外地丢失他们在报告上的工作,所以我们一直在锁定他们可以按下的可能使他们丢失数据的一切。F5、CRTL+R、CTRL+W和Backspace都被禁用;IE中的所有栏都被隐藏,关闭按钮上有一个确认对话框。

我没有任何运气禁用ALT+F4,ALT+⇇,ALT+→

我尝试过用javascript禁用它们。然而,我的方法不起作用。

if (window.event.altKey) {
    if (window.event.keyCode == 115) {
        window.event.cancelBubble = true;
        window.event.returnValue = false;
        window.event.keyCode = 0;
        window.status = "Alt + F4 is disabled on all popups";
        return false;
    }
}

我想我可能需要更激烈的方法。

在这里的回答中,他建议使用shdocvw.dll可能实现这一点,但我不确定这会带来什么。

有没有办法禁用Alt+X组合,或者我可以利用它来解决问题?

您不应该破坏默认的浏览器行为。如果您担心用户意外关闭窗口,只需使用onbeforeunload事件:

window.onbeforeunload = function () {
    return 'You will lose all unsaved changes.';
};​

http://jsfiddle.net/jbabey/rPLWd/

不,您不能禁用这些组合-并且出于良好的安全原因(否则任何网页都可能劫持您的计算机…)。

您的最佳选择是(按功能降序排列):

  • 不断将工作保存在服务器上(想想谷歌文档)
  • 使用客户端存储(WebStorage等)
  • 实现onBeforeUnload处理程序,该处理程序在离开页面(或关闭浏览器)之前请求确认
  • 强制用户在退出时使用保存页面状态的浏览器(包括表单等)(例如Firefox和IIRC、Chrome)