Почему не работает яндекс метрика?

499
09 апреля 2017, 03:18

Есть событие, которые вызывается при инициализации метрики. Собственно тут более подробно об этом 'метрика'. По каким-то причинам, событие не отрабатывает, инициализировать метрику в браузере руками можно, след. способом yaMetrika.initedCallback()

var yandexId = 44034219; 
 
YandexMetrika = function (document) { 
 
    if (window.yandexMetrika) { 
        return window.yandexMetrika; 
    } 
 
    window.yandexMetrika = { 
        // Очередь событий 
        queue: [], 
 
        client: null, 
 
        initialized: false, 
 
        // Инициализация 
        initedCallback: function () { 
            this.initialized = true; 
            this.client = new Ya.Metrika({ 
                id: yandexId, 
                clickmap: true, 
                trackLinks: true, 
                accurateTrackBounce: true, 
                ut: "noindex" 
            }); 
 
            $.each(this.queue, function (i, goal) { 
                this.client.reachGoal(goal); 
            }); 
        }, 
 
        // Отправка события 
        goal: function (goal) { 
            this.initialized ? this.client.reachGoal(goal) : this.queue.push(goal); 
        } 
    }; 
 
    var n = document.getElementsByTagName("script")[0]; 
    var s = document.createElement("script"); 
    var f = function () { n.parentNode.insertBefore(s, n) }; 
 
    s.type = "text/javascript"; 
    s.async = true; 
    s.src = "https://mc.yandex.ru/metrika/watch.js"; 
    if (window.opera == "[object Opera]") { 
        document.addEventListener("DOMContentLoaded", f, false); 
    } else { 
        f(); 
    } 
 
    return window.yandexMetrika; 
}; 
 
var yaMetrika = YandexMetrika(document); 
 
$(document).on('yandex_metrika_callbacks', function () { 
    console.log('ol'); 
    yaMetrika.initedCallback(); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <h1>test</h1> 
 
    <!-- Yandex.Metrika counter --> 
    <script type="text/javascript"> 
        (function (d, w, c) { 
            (w[c] = w[c] || []).push(function() { 
                try { 
                    w.yaCounter44034219 = new Ya.Metrika({ 
                        id:44034219, 
                        clickmap:true, 
                        trackLinks:true, 
                        accurateTrackBounce:true 
                    }); 
                } catch(e) { } 
            }); 
 
            var n = d.getElementsByTagName("script")[0], 
                    s = d.createElement("script"), 
                    f = function () { n.parentNode.insertBefore(s, n); }; 
            s.type = "text/javascript"; 
            s.async = true; 
            s.src = "https://mc.yandex.ru/metrika/watch.js"; 
 
            if (w.opera == "[object Opera]") { 
                d.addEventListener("DOMContentLoaded", f, false); 
            } else { f(); } 
        })(document, window, "yandex_metrika_callbacks"); 
    </script> 
    <noscript><div><img src="https://mc.yandex.ru/watch/44034219" style="position:absolute; left:-9999px;" alt="" /></div></noscript> 
    <!-- /Yandex.Metrika counter -->

READ ALSO
Как правильно собирать проект на Angular2?

Как правильно собирать проект на Angular2?

Более двух лет я писал приложения на Angular 1 - 15 и использовал для собрки gulp

348
Преобразовать массивы в JS

Преобразовать массивы в JS

Добрый деньПомогите пожалуйста найти подобие операции в PHP средствами JS

277
Выбрать текст по ограничителям

Выбрать текст по ограничителям

Допустим имеется документ такого содержания:

284
Получить order_id в редактируемой таблице

Получить order_id в редактируемой таблице

Есть таблица в ней поле ttn нужно что бы оно редактировалось, при клике появляется поле для изменения данных

284