所以,我有一个幸运之轮,你可以每天旋转一次并为你的商店打折。有人要求我做一个功能,如果你来自欧洲,你必须在旋转之前接受GDPR或类似的东西。一切都很好,第一次,然后当我刷新,它不再出现在那里,但是,如果我删除本地存储/饼干它的工作,任何想法?我有以下代码=>
var europe_loc = ['AD', 'AL', 'AT', 'AX', 'BA', 'BE', 'BG', 'BY', 'CH', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FO', 'FR', 'GB', 'GG', 'GI', 'GR', 'HR', 'HU', 'IE', 'IM', 'IS', 'IT', 'JE', 'LI', 'LT', 'LU', 'LV', 'MC', 'MD', 'ME', 'MK', 'MT', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'RU', 'SE', 'SI', 'SJ', 'SK', 'SM', 'UA', 'VA'];
var country_code = bd_get_local('vitals_country_code');
if(country_code == null) {
$.getJSON('//freegeoip.net/json/?callback=?', function(data) {
var country_code = data['country_code'];
if(country_code.length > 0) bd_store_local('vitals_country_code', country_code);
var accepted = bd_get_local('cookie_accepted');
if(accepted == null && europe_loc.indexOf(country_code) >= 0) {
$('.bundle-wheel-form').append('<label for="gdprCheck">I have read and accepted the whatever i must type here</label><input type="checkbox" id="gdprCheck" name="europeGdpr">');
}
});
}
读取本地存储的代码:
function bd_store_local(key, value, exp) {
if(typeof value === 'object') {
value = JSON.stringify(value);
} else {
value = String(value);
}
if(lsSupport) {
localStorage.setItem(key, value);
} else {
createCookie(key, value, exp);
}
}
if (typeof localStorage !== 'undefined' && typeof localStorage.setItem !== 'undefined') {
var lsSupport = true;
} else {
var lsSupport = false;
}
答案 0 :(得分:0)
只有当用户点击GDPR横幅中的“接受”按钮时,才应设置本地存储项。
因此,仅在用户接受GDPR后才使用此bd_store_local('vitals_country_code', country_code);
。