启动SweetAlert以防止用户关闭窗口

时间:2015-04-15 03:52:21

标签: javascript jquery sweetalert

我试图在关闭窗口之前向用户显示一条消息。我正在使用运行良好的SweetAlert(http://tristanedwards.me/sweetalert)。

问题在于JavaScript / jQuery让我知道用户何时尝试关闭窗口/标签然后显示阻止他关闭页面的内容,除非他再次点击。

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

我试过这个,但它在我的SweetAlert上面显示了丑陋的常见信息,任何想法? 没有返回部分它无论如何关闭窗口,我试过:/

1 个答案:

答案 0 :(得分:7)

You can't disable the alert, nor change the style of the alert on onbeforeunload.主要原因是安全问题。

来自MDN文档,WindowEventHandlers.onbeforeunload,它说,

  

当此事件返回非void值时,系统会提示用户确认页面卸载。在大多数浏览器中,事件的返回值显示在此对话框中。在Firefox 4及更高版本中,返回的字符串不会显示给用户。相反,Firefox显示字符串“此页面要求您确认要离开 - 您输入的数据可能无法保存。”见bug 588292。

     

自2011年5月25日起,HTML5规范声明在此事件期间可能会忽略对window.alert(),window.confirm()和window.prompt()方法的调用。有关更多详细信息,请参阅HTML5规范。

     

另请注意,各种移动浏览器会忽略事件的结果(即,他们不会要求用户进行确认)。 Firefox在about:config中有一个隐藏的首选项来做同样的事情。实质上,这意味着用户始终确认可以卸载文档。