除了beforeunload或onbeforeunload或unload之外,还有办法处理浏览器/选项卡关闭吗?因为我尝试了所有3个事件但默认弹出窗口即将到来。我不希望弹出默认设置,但我想在近距离点击时做点什么。
答案 0 :(得分:1)
您无法使用preventDefault
或任何其他方法直接阻止关闭窗口/标签页。由于此限制,您无法使用自定义模式等来显示消息。您唯一的选择是返回一条可以绕过的消息。
window.onbeforeunload = function(){
return "Do you want to leave?";
}
(演示:http://jsfiddle.net/9sAE4/embedded/result/)
请注意,Firefox目前不向用户显示所包含的消息,而是询问用户是否希望离开的一般消息。
答案 1 :(得分:1)
没有。关闭窗口时执行任何操作的唯一方法是使用onbeforeunload
,而您允许执行的操作非常有限。例如,Firefox和Chrome会阻止您使用alert
或confirm
(但是支持从处理程序返回一个字符串,然后他们将用来向用户显示选项留在页面上)。有些浏览器可能会允许同步 ajax
来电,但我认为不会这样做,如果我是你,我会避免使用它。您可以在本地存储中设置项目。
来自你的评论:
我不想关闭浏览器/标签,我想展示自己的Pop up
你做不到。您所能做的只是挂钩onbeforeunload
并返回字符串,浏览器将使用该字符串为用户提供留在页面上的机会。您无法设置该窗口的样式或控制它。
window.onbeforeunload = function() {
return "Your message here.";
};
请注意,最近版本的Firefox甚至没有显示您的消息,他们只是使用通用“此页面要求您确认要离开 - 您输入的数据可能不是保存“。 (或类似的)改为。