当前网址页面基础上跳转站内链接,不清除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的操作。