Настройка Cookie в JS для языка на основе клика по карте - PullRequest
0 голосов
/ 01 марта 2019

У меня есть два всплывающих модальных окна, которые позволяют пользователю выбрать язык.

  • # Языки модального : Позволяет пользователю выбрать регион, а затем он преобразуеттекущая страница на выбранном языке.
  • # модем "купить сейчас" : этот модал появляется, когда пользователь нажимает любую ссылку на покупку на сайте.

Если :

  • Пользователь заходит на сайт и у него не выбран язык (используется глобальный английский), и он нажимает на ссылку «купить сейчас», и он открывает модальный #buy-now.
  • Пользователь заходит на сайт и открывает модальное окно #languages, а затем нажимает на ссылку "купить сейчас", модальное окно #buy-now не должно появляться (поскольку мы уже знаем, на каком языке находится пользователь).

У меня уже есть набор файлов cookie для модального #buy-now, который называется buyLang.Когда пользователь щелкает ссылку «Купить сейчас» и выбирает язык из модального окна, он устанавливает файл cookie buyLang: var buyLang = $.cookie('buyLang');

Для упрощения я хочу:

  1. Установить cookie с именем language-selected.Когда файл cookie language-selected создан (а файл cookie buyLang не существует), создайте оба файла cookie с одинаковым значением.
  2. Когда файл cookie buyLang создан, создайте файл cookie language-selectedс тем же значением (чтобы пользователю больше не приходилось выбирать язык).

Как лучше всего подойти к этому?

1 Ответ

0 голосов
/ 01 марта 2019

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

Пример:

HTML:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

<select id="selectListLanguage">
  <option value="en">English</option>
  <option value="id">Indonesia</option>
</select>

<button id="btnSubmitLanguage">Change</button>

JS:

function btnSubmitLanguageOnClick() {
  const newLanguage = $("#selectListLanguage option:selected").val();

  if (!Cookies.get("language-selected")) {
    Cookies.set("language-selected", newLanguage);
  }

  if (!Cookies.get("buyLang")) {
    Cookies.set("buyLang", newLanguage);
  }

  //   You can set the language of the page contents in server side with reload this page
  location.reload();
}

$("#btnSubmitLanguage").click(btnSubmitLanguageOnClick);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...