我将UTM参数存储在初次登陆用户的网站上。他/她可以访问网站的任何页面,并且在注册期间,我正在将这些参数发送到后端(存储到数据库)。
$(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(!localStorage.getItem('utmData')) {
localStorage.setItem('utmData', JSON.stringify(utmData));
}else if(localStorage.getItem('utmData')){
localStorage.removeItem('utmData');
localStorage.setItem('utmData', JSON.stringify(utmData));
}
}
});
但是问题是当用户未注册但这些参数仍然存在时。当他/她关闭浏览器时,我要删除。
答案 0 :(得分:3)
使用window.onbeforeunload处理程序。
window.onbeforeunload = function(e) {
localStorage.removeItem('utmData');
// return nothing for no «quit confirmation»
};
答案 1 :(得分:2)
如果您不想保留项目,可以将数据保存在SessionStorage
中:
$(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));
}
}
});