Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.07.2018, 00:41
Новичок на форуме
Отправить личное сообщение для user7143 Посмотреть профиль Найти все сообщения от user7143
 
Регистрация: 25.01.2018
Сообщений: 9

JS Cookies, код попап-окна
Есть вот такой рабочий код попап-окна. Подскажите, пожалуйста, как установить значение, чтобы этот код срабатывал один раз в 12 часов. т.е. как я понимаю, куки должны жить 12 часов?

И еще вопрос, если данный код работает на одном сайте и срабатывает параллельно с разными значениями var url = "https://site1.com"; , var url = "https://site2.com"; , var url = "https://site3.com"; и т.д. что-то нужно поменять в коде чтобы он работал корректно и устанавливал свои куки на 12 часов для каждого из "var url"

Спасибо!


function doMyStuff($) {
  $(document).ready(function(){
    var ran_yet = false;
    $("a,body,input").click(function() {
      if (ran_yet) {
        return;
      }
      ran_yet = true;
      var cookiename = 'nopopsite';
      var val = getCookie(cookiename);
      if (!val) {
        val = 1;
      } else {
        val = parseInt(val);
      }
      setCookie(cookiename, val + 1, 1);      
      if (val != 1) {
        return;
      }
      var windowprops = "width=1024,height=768,location=yes,toolbar=yes,menubar=yes,status=yes,scrollbars=yes,resizable=yes,top=1,left=1";
      var url = "https://site.com";
      var myWin = window.open(url, "", windowprops);
      myWin.blur();
      window.focus();
    });
  });
}

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0; i < ARRcookies.length; i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}


function check() {
  if (window.jQuery && jQuery.fn) {
    var arr = jQuery.fn.jquery.split('.');
    if (arr.length >= 2) {
      //jquery version 1.3 and up
      if (arr[0] > 1 || (arr[0] == 1 && arr[1] >= 3)) {
        return true;
      }
    }
  }
  return false;
}

if (check()) {
  doMyStuff(jQuery);
} else {
  var script = document.createElement('script');
  script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js';
  window.addEventListener('load', function () {
    document.body.insertBefore(script, document.body.firstChild);
    var timer = setInterval(function () {
      if (check()) {
        clearInterval(timer);
        document.body.removeChild(script);
        doMyStuff(jQuery.noConflict(true));
      }
    }, 30);
  });
}
Ответить с цитированием
  #2 (permalink)  
Старый 31.07.2018, 11:54
Новичок на форуме
Отправить личное сообщение для user7143 Посмотреть профиль Найти все сообщения от user7143
 
Регистрация: 25.01.2018
Сообщений: 9

Спасибо большое за ответ, Rise!

Сообщение от Rise Посмотреть сообщение
Так не получится, только текущий домен и его поддомены.
Не подскажете еще, за что отвечает "var cookiename = 'nopopsite';", где сохраняется это название "nopopsite" и можно ли его поменять?

Наверное я не правильно объяснил изначально, но уверен что этот код будет работать и ставить разные куки для разных "var url" если его модифицировать как-то. Только вопрос в том как и что модифицировать. Наверное как раз имя куки(предположение)?
Ответить с цитированием
  #3 (permalink)  
Старый 31.07.2018, 13:16
Новичок на форуме
Отправить личное сообщение для user7143 Посмотреть профиль Найти все сообщения от user7143
 
Регистрация: 25.01.2018
Сообщений: 9

Сообщение от Rise Посмотреть сообщение
Это имя куки, поменять можно.

Для чего эти url? Разные куки можно установить с разными имена, но установить их все можно только для текущего сайта.
Да, все верно, оно мне и нужно установить куки для текущего сайта с разными именами, и, соответственно с разными сроками жизни куки. Это нужно так как каждый раз скрипт открывает попап-окно с разным содержимым(var url для этого и нужен чтобы открывать внутри попапа разные URL), соответственно нужно что бы одно и то же содержимое не показывалось пользователям чаще чем, к примеру 1 раз в 12 часов.

Что я сделал, поменял для разного содержимого значение ключа cookiename "var cookiename = 'nopopsite';" на nopopsite1, nopopsite2, nopopsite3 и т.д., но в этом случае окна продолжают открываться словно куки не записываются пользователям.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск js и запись в cookies XuTpbIuJIuc Общие вопросы Javascript 1 13.12.2016 23:04
Нужно отследить редирект попап окна и получить url страницы на которую перешёл юзер alex.bityuckov@yandex.ru Общие вопросы Javascript 17 01.11.2016 19:47
Как проиндексировать картинки HTML код которых генерируется на JS greatilya Оффтопик 9 22.09.2010 07:42
Код калькулятора на JS. помогите с ошибкой! kirill.psl Общие вопросы Javascript 9 26.08.2010 11:38
Передача массива JS в cookies Denis Общие вопросы Javascript 1 04.08.2009 12:24