/** * 预判标签页被关闭 * * beforeunload 和 unload之间的时间差,在标签页刷新和关闭两种行为上均值差别较大, * 刷新的均值普遍大于 5ms,关闭的均值则小于 5ms * * ```ts * import { onWindowClose } from 'sunny-js' * onWindowClose(() => console.log('标签页被关闭')) * ``` * * @see https://my.oschina.net/dslcode/blog/1589830 * @category 浏览器标签页 */ export declare function onWindowClose(callback: () => void): void; /** * 预判当前站点域名下所有标签页被关闭 * * 适用于新标签页和复制标签页行为 * - 借助了window.name特性,但也存在window.name无法与其他应用程序共用的隐患 * - 用了本地存储,浏览器incognito模式作为独立进程窗口,localStorage不与普通模式窗口共享 * * 使用风险须知: * - 浏览器崩溃等意外可能导致uuid本地存储缓存无法被正常清理,引起标签页数量跟踪不准确问题 * * ```ts * import { onAllBrowserTabsClose } from 'sunny-js' * onAllBrowserTabsClose(() => console.log('网站所有标签页被关闭')) * ``` * * @see https://github.com/dfbaskin/browser-tab-unique-id/blob/master/src/unique-id.js * @category 浏览器标签页 */ export declare function onAllBrowserTabsClose(callback: () => void): void;