当我关闭浏览器时,我想删除cookie。我怎样才能做到这一点? 我使用了bibliotek angular2-cookie。
答案 0 :(得分:1)
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";
}
}
关于角度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";
}
}