【发布时间】:2023-04-02 06:48:01
【问题描述】:
当我关闭浏览器时,我想删除 cookie。我怎样才能做到这一点? 我使用 th bibliotek angular2-cookie。
【问题讨论】:
标签: angular typescript cookies session-cookies
当我关闭浏览器时,我想删除 cookie。我怎样才能做到这一点? 我使用 th bibliotek angular2-cookie。
【问题讨论】:
标签: angular typescript cookies session-cookies
onbeforeunload 事件将允许您在用户离开页面之前运行一些代码。将其与this answer 中的代码结合使用,您可以在用户尝试离开页面时清除所有 cookie。
window.onbeforeunload = function (e) {
deleteAllCookies();
}
function deleteAllCookies() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
关于 Angular 2,如果这是一次性的事情,那么将它作为底部 sn-p 放在您的 index.html 页面中是完全可以的,因为它与您的 Angular 2 应用程序没有真正的关系。如果你想以 Angular 2 的方式来做,你应该可以把它放在你的 AppComponent 中。
@HostListener('window:onbeforeunload', ['$event'])
onBeforeUnload() {
this.deleteAllCookies();
}
deleteAllCookies() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
【讨论】: