Запустите функцию один раз за посещение - PullRequest
0 голосов
/ 14 сентября 2018

Привет и спасибо заранее за любую поддержку в этом.

У меня есть сайт, на котором я предлагаю отправлять посетителей из США на наш специальный сайт в США через модальное всплывающее окно, когда они попадают на наш сайт AU.

Я хочу, чтобы скрипт запускался только один раз за посещение.

Что мне нужно добавить ниже, чтобы добиться этого?

Спасибо (ps - очень плохо знаком с ajax и всем, что находится за пределами HTML / CSS)

$(document).ready(function() {

  $.ajax({
    url: 'https://api.ipstack.com/check?access_key=##hidden##',
    dataType: 'jsonp',
    success: function(location) {
      // AU -- Australia
      if (location.country_code === 'AU') {

      } else {
        // Reveal Modal to select AU or US store

        // Modal 1
        $('#popup-2').slickModals({
          popupType: 'delayed',
          delayTime: 0,
          overlayColor: 'rgba(0, 0, 0, 0.1)',
          popupWidth: '420px',
          popupHeight: 'auto',
          popupLocation: 'topCenter',
          popupAnimationDuration: '0.4',
          popupAnimationEffect: 'slideTop',
          popupMargin: '30px',
          popupPadding: '20px',
          mobileBreakPoint: '420px',
          mobileLocation: 'topCenter',
          mobileWidth: '100%',
          mobileHeight: 'auto',
          mobilePadding: '0px',
          reopenClass: 'openSlickModal-2'

        })
      }
    }
  });

});

1 Ответ

0 голосов
/ 14 сентября 2018

Предполагая, что "посещение" - это любой сеанс браузера, который заканчивается, когда вкладка / браузер закрывается, вы можете использовать sessionStorage для хранения флага.

Например

if (!sessionStorage.getItem('redirect-offered')) {
    $.ajax(...)
}

и в вашем успехе обработчик

if (location.country_code === 'AU') {

} else {
  // the value doesn't really matter, it just has to be "truthy"
  sessionStorage.setItem('redirect-offered', 1); 

  $('#popup-2').slickModals(...)
}

Полный пример кода здесь ~ https://pastebin.com/X7Jy7BD2

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