网站关闭后清除cookie方案
2024年01月14日 1857

代码

当前网址页面基础上跳转站内链接,不清除cookie,当前网址全部关闭后在清除cookie

window.addEventListener("beforeunload", function(event) {
  if (event.currentTarget.performance.navigationType === 1 && window.location.hostname === event.currentTarget.location.hostname) {
    return;
  }
  var openWindows = 0;
  if (typeof event.currentTarget.performance.getEntriesByType === "function") {
    var entries = event.currentTarget.performance.getEntriesByType("navigation");
    openWindows = entries.length;
  }
  if (openWindows === 1) {
    document.cookie = "night=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
  }
});

只有当当前页面是通过点击站内链接跳转时,并且目标链接的主机名与当前页面的主机名相同,才会终止执行并不清除cookie。在当前网址全部关闭后,才会清除cookie。为了实现这一功能,代码使用了performance.navigationType属性来判断导航类型,1表示通过点击链接跳转。另外,代码还使用了window.location.hostname来获取当前页面的主机名,与目标链接的主机名进行比较,以判断是否是站内链接跳转。最后,使用performance.getEntriesByType("navigation")方法来获取当前页面的导航记录,通过记录的数量来判断当前网址是否全部关闭。如果只有一个导航记录,表示当前网址全部关闭,此时会执行清除cookie的操作。


- End -




0 条评论
  • 表情
  • 游客你好,回复内容需要 登录 查看!