我试图在关闭窗口之前向用户显示一条消息。我正在使用运行良好的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上面显示了丑陋的常见信息,任何想法? 没有返回部分它无论如何关闭窗口,我试过:/
答案 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中有一个隐藏的首选项来做同样的事情。实质上,这意味着用户始终确认可以卸载文档。