当我关闭浏览器时,我想删除 cookie。我怎样才能做到这一点? 我使用 bibliotek angular2-cookie。
最佳答案
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,如果这是一次性的事情,那么将其作为底部片段放入您的 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";
}
}
关于angular - 浏览器关闭时如何删除 cookie?使用 angular2-cookies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43145494/