У меня есть эта часть кода, которую я использую, чтобы показать пользователям facebook, как всплывающее окно, только если они не видели его раньше. код довольно прямо вперед, и идет следующим образом:вызов функции JavaScript после загрузки файла cookie
function setCookie(cname, cvalue, exdays) {
var now = new Date();
var time = now.getTime();
var expireTime = time + 1*36000;
now.setTime(expireTime);
document.cookie = 'seen_fb_like=true;cookie=ok;expires='+now.toGMTString()+';path=/';
}
function getCookie(cname) {
var value = "; " + document.cookie;
var parts = value.split("; " + cname + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
window.onload = function() {
var seen = getCookie("seen_fb_like");
if(!seen) {
document.getElementById('popup-container').style.display = ("block");
setCookie();
}
}
на моей локальной машине этот код работал, как желает, но после его развертывания на моем сервере я вижу, что каждый сейчас и чем я вижу всплывающее окно, даже после того, как увидеть его мало секунд назад. Я думал, это может быть потому, что иногда функция window.onload
выполняется до того, как файл cookie загружен, но я не смог найти документацию, чтобы согласиться с этим ... любая идея, как я могу справиться с этой проблемой?
«Я думаю, это потому, что иногда функция window.onload выполняется до загрузки файла cookie» - Нет, этого не может быть. – Quentin
Удалите путь из файла cookie. Если вы выйдете из этого пути, cookie больше не будет существовать. Если путь отсутствует, он будет считаться для всего домена. – Archer
Распечатать значение файла cookie? Может быть, его не устанавливают и не меняют? – NickSlash