如何在浏览器关闭时删除cookie?使用angular2-cookies

时间:2017-03-31 16:26:30

标签: angular typescript cookies session-cookies

当我关闭浏览器时,我想删除cookie。我怎样才能做到这一点? 我使用了bibliotek angular2-cookie。

1 个答案:

答案 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";
    }
}
相关问题