我正在尝试使用window.confirm在窗口卸载事件
上显示确认框如果用户点击确认框上的OK按钮,我想调用一个函数,如果用户点击CANCEL按钮,那么窗口应该关闭。
我的代码是:
<script>
function confirmit(){
var result=window.confirm("Are you sure?");
if(result) {
// close all child windows
} else{
// window should not get close
}
}
</script>
<body onunload='confirmit();' >
但问题是如果我点击取消按钮,窗口就会越来越近。
请帮帮我。
由于
答案 0 :(得分:5)
您无法阻止卸载停止页面卸载。你需要绑定到onbeforeunload。您应该只从事件处理程序返回要显示给用户的字符串(请注意,在某些浏览器中可能不会显示字符串)
<script type="text/javascript">
window.onbeforeunload = function(e){
var msg = 'Are you sure?';
e = e || window.event;
if(e)
e.returnValue = msg;
return msg;
}
</script>
答案 1 :(得分:2)
将代码更改为此内容以使其跨浏览器工作:
<script>
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Do you really want to exit?';
}
// For Safari
return 'Do you really want to exit?';
};
</script>
<body>
...
请注意,这是使用onbeforeunload-event(more information / view an example),其中返回值必须是应向用户显示的消息。
我不知道你是否有机会对确认后的事情作出反应(例如关闭子窗口),但我不这么认为。