Как убрать скрипты из тела страницы?
Когда добавляю код напрямую на страницу, то он работает корректно. Когда выношу в отдельный файл и подключаю его на странице, то 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>