有没有办法处理浏览器/选项卡关闭而不是beforeunload或onbeforeunload或卸载

时间:2014-08-04 12:51:38

标签: javascript jquery

除了beforeunload或onbeforeunload或unload之外,还有办法处理浏览器/选项卡关闭吗?因为我尝试了所有3个事件但默认弹出窗口即将到来。我不希望弹出默认设置,但我想在近距离点击时做点什么。

2 个答案:

答案 0 :(得分:1)

您无法使用preventDefault或任何其他方法直接阻止关闭窗口/标签页。由于此限制,您无法使用自定义模式等来显示消息。您唯一的选择是返回一条可以绕过的消息。

window.onbeforeunload = function(){
    return "Do you want to leave?";
}

(演示:http://jsfiddle.net/9sAE4/embedded/result/

请注意,Firefox目前不向用户显示所包含的消息,而是询问用户是否希望离开的一般消息。

答案 1 :(得分:1)

没有。关闭窗口时执行任何操作的唯一方法是使用onbeforeunload,而您允许执行的操作非常有限。例如,Firefox和Chrome会阻止您使用alertconfirm(但是支持从处理程序返回一个字符串,然后他们将用来向用户显示选项留在页面上)。有些浏览器可能会允许同步 ajax来电,但我认为不会这样做,如果我是你,我会避免使用它。您可以在本地存储中设置项目。

来自你的评论:

  

我不想关闭浏览器/标签,我想展示自己的Pop up

你做不到。您所能做的只是挂钩onbeforeunload并返回字符串,浏览器将使用该字符串为用户提供留在页面上的机会。您无法设置该窗口的样式或控制它。

window.onbeforeunload = function() {
    return "Your message here.";
};

Example

请注意,最近版本的Firefox甚至没有显示您的消息,他们只是使用通用“此页面要求您确认要离开 - 您输入的数据可能不是保存“。 (或类似的)改为。

相关问题