Javascript 是否可以在窗口关闭时删除本地存储项?

Javascript 是否可以在窗口关闭时删除本地存储项?,javascript,jquery,session-cookies,Javascript,Jquery,Session Cookies,我正在将首次用户登录的UTM参数存储到网站中。他/她可以访问网站的任何页面,在注册期间,我将这些参数发送到后端(存储到数据库) 但问题是当用户没有注册但这些参数仍然存在时。我想在他/她关闭浏览器时删除。使用处理程序 window.onbeforeunload = function(e) { localStorage.removeItem('utmData'); // return nothing for no «quit confirmation» }; 使用处理器 window.on

我正在将首次用户登录的UTM参数存储到网站中。他/她可以访问网站的任何页面,在注册期间,我将这些参数发送到后端(存储到数据库)

但问题是当用户没有注册但这些参数仍然存在时。我想在他/她关闭浏览器时删除。

使用处理程序

window.onbeforeunload = function(e) {
  localStorage.removeItem('utmData');
  // return nothing for no «quit confirmation»
};
使用处理器

window.onbeforeunload = function(e) {
  localStorage.removeItem('utmData');
  // return nothing for no «quit confirmation»
};

如果不希望项目持久化,可以将数据保存在
会话存储中

$(document).ready(function() {
    if(window.location.href.match('utm_*')) {
        var utmData =  {
        utm_source: getParameterByName('utm_source'),
        utm_medium: getParameterByName('utm_medium'),
        utm_campaign: getParameterByName('utm_campaign'),
        gclid: getParameterByName('gclid')
        }
        if(!sessionStorage.getItem('utmData')) {
            sessionStorage.setItem('utmData', JSON.stringify(utmData));
        }else if(SessionStorage.getItem('utmData')){
            sessionStorage.removeItem('utmData');
            sessionStorage.setItem('utmData', JSON.stringify(utmData));
        }                           
    }
});

如果不希望项目持久化,可以将数据保存在
会话存储中

$(document).ready(function() {
    if(window.location.href.match('utm_*')) {
        var utmData =  {
        utm_source: getParameterByName('utm_source'),
        utm_medium: getParameterByName('utm_medium'),
        utm_campaign: getParameterByName('utm_campaign'),
        gclid: getParameterByName('gclid')
        }
        if(!sessionStorage.getItem('utmData')) {
            sessionStorage.setItem('utmData', JSON.stringify(utmData));
        }else if(SessionStorage.getItem('utmData')){
            sessionStorage.removeItem('utmData');
            sessionStorage.setItem('utmData', JSON.stringify(utmData));
        }                           
    }
});


如果您不希望项目持续存在,为什么不使用SessionStorage而不是localStorage?您能否给出相同的答案,即如何实现@Aakashthakurt localStorage的真正目的是在页面重新加载时保持数据。如果你不想让这些数据持久化,那么你为什么要首先使用LocalStorage?@JeremyThille是的,我首先做错了。会话存储是正确的。如果不希望项目持久化,为什么不使用会话存储而不是本地存储?请给出相同的答案,如何实现@aakashthakurt本地存储的目的就是在页面重新加载时持久化数据。如果你不想让这些数据持久化,那么你为什么要首先使用LocalStorage?@JeremyThille是的,我首先做错了。会话存储是正确的。如果用户将使用mobile check以确保其支持,请小心使用该APIit@Nico,当不需要退出确认时,它有什么问题?@vp_arth当我重定向到另一个页面时,它正在从本地存储中删除。那没用。那时候我根本不懂这个问题。重定向与close有何不同?只需将所有
localStorage
替换为它们的接口即可。如果用户将使用mobile check以确保其支持,则使用该API时同样小心it@Nico,当不需要退出确认时,它有什么问题?@vp_arth当我重定向到另一个页面时,它正在从本地存储中删除。那没用。那时候我根本不懂这个问题。重定向与close有何不同?只需将所有
localStorage
替换为它们的接口都相同谢谢,这是sessionStorage,不是sessionStorage。谢谢,这是sessionStorage,不是sessionStorage。