Ответ 1
Да, это правильно.
Не помещая часть expires
, создаст файл cookie сеанса, независимо от того, создан он в JavaScript или на сервере.
Мне было интересно, возможно ли создавать сеансовые куки с Javascript. Когда браузер закрыт, файлы cookie должны быть удалены.
Я не могу ничего использовать на сервере, поскольку веб-сайт является только HTML... поэтому не используется серверная сторона script.
Я читал кое-что об этом здесь: http://blog.lysender.com/2011/08/setting-session-only-cookie-via-javascript/ но я не могу найти больше информации об этом... так что мне было интересно, надежный ли этот метод.
Да, это правильно.
Не помещая часть expires
, создаст файл cookie сеанса, независимо от того, создан он в JavaScript или на сервере.
Более простым решением было бы использовать sessionStorage
, в этом случае:
var myVariable = true;
sessionStorage['myvariable'] = myVariable;
myVariable = sessionStorage['myvariable'];
Однако имейте в виду, что sessionStorage
сохраняет все как строку, поэтому при работе с массивами/объектами вы можете использовать JSON для их хранения:
var myVariable = {a:[1,2,3,4], b:"some text"};
sessionStorage['myvariable'] = JSON.stringify(myVariable);
myVariable = JSON.parse(sessionStorage['myvariable']);
Сеанс страницы длится до тех пор, пока браузер открыт и выживет при перезагрузке и восстановлении страницы. Открытие страницы в новой вкладке или окне приведет к запуску нового сеанса.
Итак, когда вы закрываете страницу/вкладку, данные теряются.
Для создания cookie только с java script, вы можете использовать следующее. Это работает для меня.
document.cookie = "cookiename=value; expires=0; path=/";
то получите значение cookie как
//get cookie
var cookiename = getCookie("cookiename");
if (cookiename == "value") {
//write your script
}
//function getCookie
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1);
if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
}
return "";
}
Хорошо поддерживать IE, мы можем оставить "окончательно" и использовать этот
document.cookie = "mtracker=somevalue; path=/";