@sneiks

Как модифицировать отложенную загрузку для Яндекс метрики?

Всем добрый день. Для ускорения яндекс метрики есть код скролл-ивент + задержка в 1 секунду. Скажите как данному коду прикрутить условие if ( navigator.userAgent.indexOf( 'YandexMetrika' ) > -1 ) { тем самым что бы для яши отдавался чистый код счетчика ? Реально такое реализовать ?

var fired = false;
window.addEventListener('scroll', () => {
    if (fired === false) {
        fired = true;
        setTimeout(() => {
            // КОД МЕТРИКИ
        }, 1000)
    }
});
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
{
  let isYMLoaded = false;

  const loadYM = () => {
    if (isYMLoaded) return;
    isYMLoaded = true;
    setTimeout(() => {
      // Metrika code
      // ... 
    }, 0);
  }

  const eventNames = 'click,scroll,touchstart,mouseenter'.split(',');

  const handlerYM = () => {
    eventNames.forEach((name) => document.removeEventListener(name, handlerYM));
    loadYM();
  }

  if (!!~navigator.userAgent.indexOf('YandexMetrika')) {
    // Yandex
    loadYM();
  } else {
    // нормальный посетитель
    eventNames.forEach((name) => document.addEventListener(name, handlerYM));
  }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы