Как убрать скрипты из тела страницы?

Когда добавляю код напрямую на страницу, то он работает корректно. Когда выношу в отдельный файл и подключаю его на странице, то jivo_onLoadCallback() (Callback-функция) не срабатывает. Сам Jivo подключается через тег-менеджер (async). Как можно исправить?

var jivo_loaded = false;

function jivo_onLoadCallback() {
    jivo_loaded = true;
}

Полный код на всякий случай. Это работает, когда добавлено напрямую в тело страницы. Я хочу вынести это все в отдельный файл.

<script>
    var jivo_loaded = false,
        buttons = document.querySelectorAll('.btn-buy, .btn-ask'), 
        index,
        button;

    window.dataLayer = window.dataLayer || [];

    function gtag() {
        dataLayer.push(arguments);
    }

    function jivo_onLoadCallback() {
        jivo_loaded = true;
        gtag('event', 'jivo_loaded');
    }

    for (index = 0; index < buttons.length; index++) {
        button = buttons[index];
        button.addEventListener('click', setContact);
    }

    function setContact(event) {
        if (jivo_loaded) {
            jivo_api.open({ 
                start: 'menu',
            });
        } else {
            document.querySelector('.wrap_2775').classList.remove('d-none');
            document.body.classList.add('modal-open');
            gtag('event', 'jivo_not_loaded');
        }

        if (this.dataset.id) {
            axios
                .post('/update/' + this.dataset.id)
                .then((response) => {
                    gtag('event', 'buy_button_pressed');
                });
        } else {
            gtag('event', 'ask_button_pressed');
        }
    }
</script> 

Ответы (0 шт):