Задать вопрос
Ответы пользователя по тегу JavaScript
  • Отложенная загрузка Яндекс метрики, пробовал ли кто-то ставить?

    Kalaganov5
    @Kalaganov5
    Реклама, Аналитика, Веб-разработка
    Более проработанный пример
    <script type="text/javascript">
                ( function () {
                    'use strict';
     
                    // Флаг, что Метрика уже загрузилась.
                    var loadedMetrica = false,
                        // Ваш идентификатор сайта в Яндекс.Метрика.
                        metricaId     = 123456789,
                        // Переменная для хранения таймера.
                        timerId;
     
                    // Для бота Яндекса грузим Метрику сразу без "отложки",
                    // чтобы в панели Метрики были зелёные кружочки
                    // при проверке корректности установки счётчика.
                    if ( navigator.userAgent.indexOf( 'YandexMetrika' ) > -1 ) {
                        loadMetrica();
                    } else {
                        // Подключаем Метрику, если юзер начал скроллить.
                        window.addEventListener( 'scroll', loadMetrica, {passive: true} );
     
                        // Подключаем Метрику, если юзер коснулся экрана.
                        window.addEventListener( 'touchstart', loadMetrica );
     
                        // Подключаем Метрику, если юзер дернул мышкой.
                        document.addEventListener( 'mouseenter', loadMetrica );
     
                        // Подключаем Метрику, если юзер кликнул мышкой.
                        document.addEventListener( 'click', loadMetrica );
     
                        // Подключаем Метрику при полной загрузке DOM дерева,
                        // с "отложкой" в 1 секунду через setTimeout,
                        // если пользователь ничего вообще не делал (фоллбэк).
                        document.addEventListener( 'DOMContentLoaded', loadFallback );
                    }
     
                    function loadFallback() {
                        timerId = setTimeout( loadMetrica, 1000 );
                    }
     
                    function loadMetrica( e ) {
     
                        // Пишем отладку в консоль браузера.
                        if ( e && e.type ) {
                            console.log( e.type );
                        } else {
                            console.log( 'DOMContentLoaded' );
                        }
     
                        // Если флаг загрузки Метрики отмечен,
                        // то ничего более не делаем.
                        if ( loadedMetrica ) {
                            return;
                        }
     
                        (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js", "ym");
                        ym( metricaId, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true });
     
                        // Отмечаем флаг, что Метрика загрузилась,
                        // чтобы не загружать её повторно при других
                        // событиях пользователя и старте фоллбэка.
                        loadedMetrica = true;
     
                        // Очищаем таймер, чтобы избежать лишних утечек памяти.
                        clearTimeout( timerId );
     
                        // Отключаем всех наших слушателей от всех событий,
                        // чтобы избежать утечек памяти.
                        window.removeEventListener( 'scroll', loadMetrica );
                        window.removeEventListener( 'touchstart', loadMetrica );
                        document.removeEventListener( 'mouseenter', loadMetrica );
                        document.removeEventListener( 'click', loadMetrica );
                        document.removeEventListener( 'DOMContentLoaded', loadFallback );
                    }
                } )()
        </script>


    Источник: https://www.kobzarev.com/technical-seo/yandex-metr...
    Ответ написан
    Комментировать
  • Как подсчитать число правильных ответов в JS?

    Kalaganov5
    @Kalaganov5
    Реклама, Аналитика, Веб-разработка
    Как я понял, такое решение предлагает Александр:

    var summ = null;
    
    alert("Отгадайте ещё три загадки.");
      var secret1 = prompt("На каком языке говорят молча?");
      if (secret1 == "язык жестов" || secret1 == "Язык жестов" || secret1 == "Жестов" || secret1 == "жестов") {
         alert("Верно!");
    	 summ++ //Считаем что первая задача выполнена верно тогда +1
      }
      else {
        alert("Ответ не верен.");
      }
      var secret2 = prompt("В каком городе спрятались мужское имя и сторона света?");
      if (secret2 == "Владивосток" || secret2 == "владивосток") {
         alert("Да, это Владивосток!");
    	 summ++ //Считаем что вторая задача выполнена верно тогда +1
      }
      else {
        alert("Не угадали.");
      }
      var secret3 = prompt("Какая нота и продукт называются одинаково?");
      if (secret3 == "Соль" || secret3 == "соль") {
        alert("Правильно!");
    	summ++ //Считаем что третья задача выполнена верно тогда +1
      }
      else {
        alert("Нет, не правильно.");
      }
      alert("Сделано задач верно: " + summ);


    Потестил, работает. По желанию можно подсчитать сколько задач сделано НЕ верно :)

    Пример ниже:

    var summ = null;
    	var summerror = null;
    
    alert("Отгадайте ещё три загадки.");
      var secret1 = prompt("На каком языке говорят молча?");
      if (secret1 == "язык жестов" || secret1 == "Язык жестов" || secret1 == "Жестов" || secret1 == "жестов") {
         alert("Верно!");
    	 summ++ //Считаем что первая задача выполнена верно тогда +1
      }
      else {
        alert("Ответ не верен.");
    	summerror++
      }
      var secret2 = prompt("В каком городе спрятались мужское имя и сторона света?");
      if (secret2 == "Владивосток" || secret2 == "владивосток") {
         alert("Да, это Владивосток!");
    	 summ++ //Считаем что вторая задача выполнена верно тогда +1
      }
      else {
        alert("Не угадали.");
    	summerror++
      }
      var secret3 = prompt("Какая нота и продукт называются одинаково?");
      if (secret3 == "Соль" || secret3 == "соль") {
        alert("Правильно!");
    	summ++ //Считаем что третья задача выполнена верно тогда +1
      }
      else {
        alert("Нет, не правильно.");
    	summerror++
      }
      alert("Сделано задач верно: " + summ + ". Неправильных ответов:" + summerror);
    Ответ написан
    Комментировать