在IE和FF中,我可以将事件处理程序附加到onBeforeUnload,并通过将字符串传递给事件的属性,用户将看到一个对话框询问他是否要继续“卸载”(关闭)窗户或导航)。
Safari和Chrome不支持onBeforeUnload,onUnload似乎为时已晚。 有没有办法在Safari / Chrome中复制相同的功能?
注意:我不是试图让用户成为人质。我知道这是唠叨和不酷。事实上,我的网站竭尽全力让用户自由自在,并在他们回来时将所有内容都放在其位置。 但是,我在IFrames中托管其他网站,有时这些决定摆脱我并接管浏览器,这是我想要避免的。
谢谢!
答案 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