я что-то на самом деле просто не хватает ...Не удается проверить существующий куки правильно
У меня есть кнопка, которая устанавливает куки:
<button id="gotit" >Got it</button>
JS:
$('#gotit').click(function() {
setCookie("gotIt", 'True', 30);
});
И I a checkGetIt()
функция с простым, если иное:
function checkGetIt() {
var gotIt = getCookie("gotIt");
if (gotIt === "") {
console.log('no such cookie'); // should do this until button pressed
} else {
console.log('cookie exists'); // this displays all the time, which is wrong
}
}
checkGetIt();
var z = document.cookie;
console.log('existing cookies: ' + z);
Но я всегда получаю console.log('cookie exists');
, даже если console.log('existing cookies: ' + z);
ничего мне не дал, прежде чем нажимать кнопку.
setCookie() и getCookie() - это общие функции, которые раньше работали на меня.
Спасибо, что работает. Можете ли вы прокомментировать, в каких случаях, если (cookie == "") может работать, но в некоторых случаях это должно быть (cookie === null)? – Andrejs
'null' - это когда cookie не установлен. Иногда cookie может быть установлен, но в пустую строку '' ''. – evolutionxbox
Вы делали if (cookie === ""), который на английском языке был бы «если переменная cookie пустая строка», и, как вы можете видеть в своей функции getCookie, вы возвращаете нуль. Следовательно, это условие всегда будет возвращать false. Для получения дополнительной информации см. Ссылку, указанную в ответе. Если у вас все еще есть сомнения, сообщите нам об этом. – Charmander