Помогите пофиксить

SPoX

Знаток
Регистрация
19 Апр 2014
Сообщения
186
Реакции
28
Привет всем у меня такая проблема
Я вставляю этот код чтобы вывести окно соглашения на куки записи

Сам этот код работает отлично все как надо но только есть одно но
как только я вставляю этот код на сайте все остальное что использует javascript на пример слайдер новостей или окно авторизации перестает работать пока ты не нажмешь на кнопку понятно и не перезагрузишь страницу

Код:
// --- Config --- //
var purecookieTitle = "Файлы cookie";
var purecookieDesc = "Используя Веб-сайт, вы автоматически соглашаетесь на использование нами файлов cookie..";
var purecookieLink = '<a href="/cookie-policy.html" target="_blank">подробно</a>';
var purecookieButton = "понятно";
// ---  --- //


function pureFadeIn(elem, display){
  var el = document.getElementById(elem);
  el.style.opacity = 0;
  el.style.display = display || "block";

  (function fade() {
  var val = parseFloat(el.style.opacity);
  if (!((val += .02) > 1)) {
  el.style.opacity = val;
  requestAnimationFrame(fade);
  }
  })();
};
function pureFadeOut(elem){
  var el = document.getElementById(elem);
  el.style.opacity = 1;

  (function fade() {
  if ((el.style.opacity -= .02) < 0) {
  el.style.display = "none";
  } else {
  requestAnimationFrame(fade);
  }
  })();
};

function setCookie(name,value,days) {
  var expires = "";
  if (days) {
  var date = new Date();
  date.setTime(date.getTime() + (days*24*60*60*1000));
  expires = "; expires=" + date.toUTCString();
  }
  document.cookie = name + "=" + (value || "")  + expires + "; path=/";
}
function getCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
  var c = ca[i];
  while (c.charAt(0)==' ') c = c.substring(1,c.length);
  if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}
function eraseCookie(name) {  
  document.cookie = name+'=; Max-Age=-99999999;'; 
}

function cookieConsent() {
  if (!getCookie('purecookieDismiss')) {
  document.body.innerHTML += '<div class="cookieConsentContainer" id="cookieConsentContainer"><div class="cookieTitle"><p>' + purecookieTitle + '</p></div><div class="cookieDesc"><p>' + purecookieDesc + ' ' + purecookieLink + '</p></div><div class="cookieButton"><a onClick="purecookieDismiss();">' + purecookieButton + '</a></div></div>';
   pureFadeIn("cookieConsentContainer");
  }
}

function purecookieDismiss() {
  setCookie('purecookieDismiss','1',7);
  pureFadeOut("cookieConsentContainer");
}

window.onload = function() { cookieConsent(); };

как я понял проблема именно в этом куске кода (ну если мои знания хватает)
Код:
window.onload = function() { cookieConsent(); };

как пофиксить помогите пожалуйста
чтобы этот код работал с остальными нормально
 
Привет всем у меня такая проблема
Я вставляю этот код чтобы вывести окно соглашения на куки записи

Сам этот код работает отлично все как надо но только есть одно но
как только я вставляю этот код на сайте все остальное что использует javascript на пример слайдер новостей или окно авторизации перестает работать пока ты не нажмешь на кнопку понятно и не перезагрузишь страницу

Код:
// --- Config --- //
var purecookieTitle = "Файлы cookie";
var purecookieDesc = "Используя Веб-сайт, вы автоматически соглашаетесь на использование нами файлов cookie..";
var purecookieLink = '<a href="/cookie-policy.html" target="_blank">подробно</a>';
var purecookieButton = "понятно";
// ---  --- //


function pureFadeIn(elem, display){
  var el = document.getElementById(elem);
  el.style.opacity = 0;
  el.style.display = display || "block";

  (function fade() {
  var val = parseFloat(el.style.opacity);
  if (!((val += .02) > 1)) {
  el.style.opacity = val;
  requestAnimationFrame(fade);
  }
  })();
};
function pureFadeOut(elem){
  var el = document.getElementById(elem);
  el.style.opacity = 1;

  (function fade() {
  if ((el.style.opacity -= .02) < 0) {
  el.style.display = "none";
  } else {
  requestAnimationFrame(fade);
  }
  })();
};

function setCookie(name,value,days) {
  var expires = "";
  if (days) {
  var date = new Date();
  date.setTime(date.getTime() + (days*24*60*60*1000));
  expires = "; expires=" + date.toUTCString();
  }
  document.cookie = name + "=" + (value || "")  + expires + "; path=/";
}
function getCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
  var c = ca[i];
  while (c.charAt(0)==' ') c = c.substring(1,c.length);
  if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}
function eraseCookie(name) {
  document.cookie = name+'=; Max-Age=-99999999;';
}

function cookieConsent() {
  if (!getCookie('purecookieDismiss')) {
  document.body.innerHTML += '<div class="cookieConsentContainer" id="cookieConsentContainer"><div class="cookieTitle"><p>' + purecookieTitle + '</p></div><div class="cookieDesc"><p>' + purecookieDesc + ' ' + purecookieLink + '</p></div><div class="cookieButton"><a onClick="purecookieDismiss();">' + purecookieButton + '</a></div></div>';
   pureFadeIn("cookieConsentContainer");
  }
}

function purecookieDismiss() {
  setCookie('purecookieDismiss','1',7);
  pureFadeOut("cookieConsentContainer");
}

window.onload = function() { cookieConsent(); };

как я понял проблема именно в этом куске кода (ну если мои знания хватает)
Код:
window.onload = function() { cookieConsent(); };

как пофиксить помогите пожалуйста
чтобы этот код работал с остальными нормально
Попробуй вот так:
HTML:
function cookieConsent() {
  if (!getCookie('purecookieDismiss')) {
    let container = document.createElement("div")
    container.id = "cookieConsentContainer"
    container.classList.add("cookieConsentContainer")
    container.innerHTML = `<div class="cookieTitle"><p>${purecookieTitle}</p></div><div class="cookieDesc"><p>${purecookieDesc} ${purecookieLink}</p></div><div class="cookieButton"><a onClick="purecookieDismiss();">${purecookieButton}</a></div>`
    document.body.appendChild(container)
    pureFadeIn("cookieConsentContainer");
  }
}
 
  • Нравится
Реакции: SPoX
Нет не работает :conf: :conf:
 
Нет не работает :conf: :conf:
Уверен? Потому что я этот код проверил и у меня работает.
Вот тебе пример странички.
HTML:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Example</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    <script>
      let element = document.querySelector("h1")
      element.onclick = function () {
        alert("Hello World!")
      }

      let purecookieTitle = "Файлы cookie"
      let purecookieDesc = "Используя Веб-сайт, вы автоматически соглашаетесь на использование нами файлов cookie.."
      let purecookieLink = '<a href="/cookie-policy.html" target="_blank">подробно</a>'
      let purecookieButton = "понятно"

      //document.body.innerHTML += '<div class="_cookieConsentContainer" id="cookieConsentContainer"><div class="cookieTitle"><p>' + purecookieTitle + '</p></div><div class="cookieDesc"><p>' + purecookieDesc + ' ' + purecookieLink + '</p></div><div class="cookieButton"><a onClick="purecookieDismiss();">' + purecookieButton + '</a></div></div>'

      let container = document.createElement("div")
      container.textContent = "Hello"
      container.classList.add("cookieConsentContainer")
      container.id = "cookieConsentContainer"
      container.innerHTML = `<div class="cookieTitle"><p>${purecookieTitle}</p></div><div class="cookieDesc"><p>${purecookieDesc} ${purecookieLink}</p></div><div class="cookieButton"><a onClick="purecookieDismiss();">${purecookieButton}</a></div>`
      document.body.appendChild(container)
    </script>
  </body>
</html>
 
  • Нравится
Реакции: SPoX
Я вот так поставил и все работает как часи
и сайт и сам скрипт

Код:
function cookieConsent() {
  if (!getCookie('purecookieDismiss')) {
  let container = document.createElement("div")
  container.id = "cookieConsentContainer"
  container.classList.add("cookieConsentContainer")
  container.innerHTML = '<div class="cookieTitle"><p>' + purecookieTitle + '</p></div><div class="cookieDesc"><p>' + purecookieDesc + ' ' + purecookieLink + '</p></div><div class="cookieButton"><a onClick="purecookieDismiss();">' + purecookieButton + '</a></div>'
  document.body.appendChild(container)
  pureFadeIn("cookieConsentContainer");
  }
}
 
у тебя было вот такой символ
Код:
`

а я поменял
Код:
'
 
у тебя было вот такой символ
Код:
`

а я поменял
Код:
'
Ммм... Если честно, я понятия не имею, почему у тебя не работало.
Возможно браузер очень старый? Потому что мой код это валидный JS.
 
  • Нравится
Реакции: SPoX
Назад
Сверху