当用户关闭Safari / Chrome中的窗口时,我可以弹出确认对话框吗?

时间:2009-04-29 19:27:13

标签: safari google-chrome onbeforeunload onunload

在IE和FF中,我可以将事件处理程序附加到onBeforeUnload,并通过将字符串传递给事件的属性,用户将看到一个对话框询问他是否要继续“卸载”(关闭)窗户或导航)。

Safari和Chrome不支持onBeforeUnload,onUnload似乎为时已晚。 有没有办法在Safari / Chrome中复制相同的功能?

注意:我不是试图让用户成为人质。我知道这是唠叨和不酷。事实上,我的网站竭尽全力让用户自由自在,并在他们回来时将所有内容都放在其位置。 但是,我在IFrames中托管其他网站,有时这些决定摆脱我并接管浏览器,这是我想要避免的。

谢谢!

4 个答案:

答案 0 :(得分:7)

这在Chrome和Safari中都非常适合我:

<html><body><p>Test</p>
<script>window.onbeforeunload = function() { return "Sure?"; }</script>
</body></html>

当我尝试关闭窗口时,我收到提示。

答案 1 :(得分:2)

StackOverflow本身使用onbeforeunload,它在Safari中适用于我:

function setConfirmUnload(a){window.onbeforeunload=a?function(){return a}:null}

答案 2 :(得分:2)

我用chrome检查了它,使用它似乎工作得很好:

<body onunload="alert('x');" onbeforeunload="test1();">

答案 3 :(得分:1)

在另一个较新的StackOverFlow问题中稍微详细介绍了这个问题: Setting onbeforeunload on body element in Chrome and IE using jQuery