如何阻止用户关闭 Javascript 中的窗口?

新手上路,请多包涵

是否可以阻止用户使用退出按钮 [X] 关闭窗口?我实际上在页面中提供了一个关闭按钮供用户关闭窗口。基本上我想做的是强制用户填写表单并提交。我不希望他们在提交之前关闭窗口。

非常感谢您的意见,我不打算在任何商业网站上托管。这是内部的事情,我们实际上正在让所有员工参与我们设计的这项调查……

我知道这不是正确的方法,但我想知道是否有解决我们在这里遇到的问题的方法……

原文由 manraj82 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 503
2 个回答

看看 onBeforeUnload

它不会强迫某人留下,但会提示他们询问他们是否真的想离开,这可能是您可以管理的最佳跨浏览器解决方案。 (如果您尝试在回答中途离开,则类似于此站点。)

 <script language="JavaScript">
    window.onbeforeunload = confirmExit;
    function confirmExit() {
        return "You have attempted to leave this page. Are you sure?";
    }
</script>

编辑:大多数浏览器不再允许 onbeforeunload 的自定义消息。

请参阅 2016 年 2 月 18 日的 错误报告

onbeforeunload 对话框在现代 Web 上用于两件事:

  1. 防止用户无意中丢失数据。
  2. 诈骗用户。

为了在不阻止前者的情况下限制它们对后者的使用,我们将不显示网页提供的字符串。相反,我们将使用通用字符串。

Firefox 已经这样做了[…]

原文由 Pool 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您不想显示所有事件的弹出窗口,您可以添加条件,例如

window.onbeforeunload = confirmExit;
    function confirmExit() {
        if (isAnyTaskInProgress) {
           return "Some task is in progress. Are you sure, you want to close?";
        }
    }

这对我来说很好

原文由 Imam 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题