Показать сообщение отдельно
  #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);
  });
}
Ответить с цитированием