0

从本质上讲,在我们的系统中,我们的用户输入报告,他们会找到各种方式来意外丢失他们的工作,因此我们一直在锁定他们可以按下的所有可能使他们丢失数据的东西。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组合或者可以解决我可以利用它们的方法?

4

2 回答 2

1

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

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

  • 不断将工作保存在服务器上(想想 Google Docs)
  • 使用客户端存储(WebStorage等)
  • 实现一个 onBeforeUnload 处理程序,在离开页面(或关闭浏览器)之前要求确认
  • 强制您的用户在退出时使用保存页面状态的浏览器(包括表单等)(例如 Firefox 和 IIRC、Chrome)
于 2012-09-04T18:53:48.670 回答
1

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

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

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

于 2012-09-04T19:01:58.720 回答