Запустите Script после того, как файл cookie установлен без перезагрузки страницы - PullRequest
1 голос
/ 16 октября 2019

В настоящее время я изучаю JavaScript и пытаюсь использовать файлы cookie. Я просто пытаюсь создать баннер cookie с возможностью подписки, поэтому Google Analytics не должен работать до тех пор, пока не будет установлен файл cookie.

Итак, у меня есть следующий код:

if (getCookie ("cookieTracking") === "1") {
  console.log ("Run Script");
}

MyАналитическая программа не должна запускаться при первом просмотре страницы. Это работает, насколько я хочу. Страница загружается и не запускает скрипт, потому что cookie не был установлен. Как только пользователь активирует отслеживание в баннере cookie, скрипт также будет загружен.

Теперь для моей проблемы : тот факт, что страница теперь загружена, браузер невыполните команду IF снова. Соответственно, аналитический код остается неисполненным. Только после перезагрузки страницы команда IF будет верна и запустит скрипт.

Это все, что логично. Но это приводит к искажению данных Google Analytics, поскольку первое посещение не учитывается. Как я могу повторно выполнить команду IF после установки файла cookie?

PS: сегодня я зарегистрировался в Stackoverflow впервые, хотя давно его использую. Я надеюсь, что смогу внести свой вклад и помочь вам тоже!

1 Ответ

1 голос
/ 16 октября 2019

Я полагаю, что вы могли бы выполнить Обещание и сделать что-то, как показано ниже:

    var cookie = new Promise((res, rej) => {
      // Possibly a function call below
      document.cookie = "test=1"; 
      // just simplified check
      document.cookie.search(/test=1/) ? res() : rej()  
    })
    // call promise to check if it's fullfilled or rejected
    cookie.then(() => console.log('set')).catch((err) => console.log('failed'))


Что выше, вы создаете новое обещание, которое устанавливает cookie. После этого вы выполняете поиск файлов cookie, и если оно было установлено или равно 1, вы разрешаете обещание, в противном случае вы отклоняете его.

Затем вы вызываете файл cookie и, используя then и catch, проверяет наличие файла cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...