【问题标题】:Prevent Window Close防止窗口关闭
【发布时间】:2015-11-01 08:39:25
【问题描述】:

我们有一个在浏览器中运行的销售点产品(特别是 chrome Kiosk 模式)。我们希望防止用户在没有密码的情况下关闭窗口。当然,在 kiosk 模式下,退出的唯一方法是结束进程或使用 alt+f4,所以现在我们的解决方案是不将键盘连接到任何 POS 终端。只是希望可能有另一种解决方案。

edit:还要提一下,我在运行此 Web 应用程序的每个终端上都具有完全的 root 访问权限。因此可以添加任何 chrome 标志等。

如前所述,我在询问有什么方法可以防止窗口一起关闭,而不仅仅是拦截卸载事件并要求确认。

【问题讨论】:

  • Intercept page exit event的可能重复
  • @OlaviSau 这些不是重复的。我正在寻找一种方法来完全阻止关闭,而不是提示用户确认,因为我认为这是可能的,因为我对运行此信息亭系统的所有机器都有 root 访问权限

标签: javascript google-chrome


【解决方案1】:

没有办法完全阻止它,你能做的最好的就是确认离开。

  window.onbeforeunload = function (e) {
  var message = "Your confirmation message goes here.",
  e = e || window.event;
  // For IE and Firefox
  if (e) {
  e.returnValue = message;
  }

  // For Safari
  return message;
};

Intercept page exit event的回答

关于alt+f4参考这个:Disable ALT+F4, yes I know it isn't recommended

【讨论】:

  • 我想这就是答案。您是否有机会知道 window.onbeforeunload 触发的函数中的所有内容是否会在窗口关闭之前执行。比如将所有未保存的数据和会话密钥放入一个cookie中。
  • 是的,所有的代码都会被执行,但是如果用户想离开,你不能从他那里得到任何额外的输入。
  • 最好先使用addEventListener('beforeunload', function() {}),然后使用window.onbeforeunload = function() {},因为后者可以覆盖之前分配给onbeforeunload的函数。
【解决方案2】:

在输入 pin 之前,您可以阻止使用 window.onbeforeunload 导航离开。

【讨论】:

  • window.onbeforeunload() 仅允许您询问用户是否要离开。如果他们说是,那么我无法阻止
猜你喜欢
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 2010-09-24
相关资源
最近更新 更多