在关闭浏览器选项卡之前运行一些 javascript 代码

问题描述

每当有人关闭浏览器选项卡时,我都想运行一些 javascript,但不知道这是怎么可能的。

我尝试执行 https://stackoverflow.com/a/16707413/569976 描述的操作,但对我不起作用:

$(window).on('beforeunload',function() {
    return confirm("Do you really want to close?");
});

(加载了 jquery)

这是 JS 小提琴:https://jsfiddle.net/hc9xrgvj/

有什么想法吗?

解决方法

根据Mozilla

根据规范,显示确认对话框和 事件处理程序应在事件上调用 preventDefault()。

但是请注意,并非所有浏览器都支持此方法,有些浏览器 而是要求事件处理程序实现两个遗留问题之一 方法:

assigning a string to the event's returnValue property
returning a string from the event handler.

一些浏览器习惯于在确认中显示返回的字符串 对话框,使事件处理程序能够向 用户。 但是,这已被弃用,并且在大多数情况下不再受支持 浏览器

为了消除不需要的弹出窗口,浏览器可能不会显示创建的提示 在 beforeunload 事件处理程序中,除非页面已被交互 有,甚至可能根本不显示。

HTML 规范声明调用 window.alert(), window.confirm() 和 window.prompt() 方法可能会被忽略 本次活动。