如何在关闭窗口时请求确认?

4
我想弹出一个消息,询问用户是否要离开当前页面,就像在输入问题时stackoverflow所做的那样。
有人能通过给我一个脚本或将我重定向到答案(在此站点或其他地方)来帮助我吗?
谢谢

你觉得建议你去查看stackoverflow的源代码会不礼貌吗? - Klaus Byskov Pedersen
不是要冒犯,但您是否确实先搜索了答案? - Aim Kai
5个回答

10

您可以使用onbeforeunload事件。

window.onbeforeunload = function() {
   return 'Are you sure that you want to leave this page?';
};

或者尝试声明性语法:https://dev59.com/c0vSa4cB1Zd3GeqPfIvU#2132790 - Ropstah
1
你需要返回一个字符串,而不是调用“确认”。 - SLaks
1
这个可以用,但要注意的是,虽然大多数浏览器会在弹出窗口中使用返回值,但像Firefox这样的一些浏览器不会使用它,而是使用默认的弹出窗口。更多信息可以在这里找到。 - TheGateKeeper

2

您需要处理窗口的onbeforeunload事件并返回确认消息作为字符串。

onunload在此处将不起作用演示


1

window.onbeforeunload 看起来适用于IE,但类似的

window.onunload = function()
{
    if (confirm('Save changes?'))
        document.forms['form1'].submit();
};

似乎适用于所有浏览器。


0

您需要将所有字段的值存储在某些变量中,并在用户更改页面URL或单击某个链接时检查它们,以捕获页面更改事件,请使用页面卸载事件。

页面卸载事件链接/示例 http://help.dottoro.com/ljflhicd.php


-1

这个不起作用吗?

<body onunload="return confirm('really quit?');">

顺便提一下,这也适用于框架集...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接