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

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

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

谢谢!

有帮助吗?

解决方案

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

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

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

其他提示

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

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

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

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

在另一个较新的StackOverFlow问题中稍微详细介绍了这个问题: 使用Chrome和IE中的body元素设置onbeforeunload jQuery的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top