Как установить дату истечения срока действия куки в Javascript

Я пытаюсь создать файл cookie, срок действия которого истекает к определенной дате. На w3schools сказали установить его используя

document.cookie="mediaType=Video; expires=Fri, 13 Mar 2015 12:00:00 UTC";

Однако в моем коде это не похоже на работу. Что я делаю неправильно?

<script>
    var mediaType = "image";
    function checkCookies(){
            document.getElementById("div").innerHTML = document.cookie;
    }
    function getType() {
        document.cookie="mediaType=Video; expires=Fri, 13 Mar 2015 12:00:00 UTC";
        document.getElementById("div").innerHTML = document.cookie
    }
</script>

<body onload="checkCookies()">
    <select onChange="mediaType = this.value">
      <option value="image">Image</option>
      <option value="link">Link</option>
      <option value="text">Text</option>
    </select>
</body>

<div id="div" onclick="getType()"> hi</div>

БОНУС есть ли способ установить cookie в качестве значения переменной?

1 ответ

Решение

Метод, который вы используете для установки cookie-файла, верный, но при запуске значения не отображаются, поскольку cookie-файлов нет. Помните, что вы можете получить доступ только к файлам cookie, установленным на вашем сайте, поэтому в начале их нет. Вы можете добавить тестовый куки-файл, чтобы увидеть, что ваш код работает, как в следующем примере, а также показать, как обновить значение куки-файла при изменении выбора, как вы просили:

<script>
function checkCookies(){
    document.cookie="Test=Test Cookie; expires=Fri, 13 Mar 2015 12:00:00 UTC";
    document.getElementById("div").innerHTML = document.cookie;
}
function updateCookies(val) {
    document.cookie="mediaType="+ val +"; expires=Fri, 13 Mar 2015 12:00:00 UTC";
    document.getElementById("div").innerHTML = document.cookie;
}
</script>

<body onload="checkCookies()">
  <select onChange="updateCookies(this.value)">
    <option value="image">Image</option>
    <option value="link">Link</option>
    <option value="text">Text</option>
  </select>

  <div id="div"> hi</div>

</body>
Другие вопросы по тегам