@vxiomv

Как чат яндекс.диалоги переместить в левую часть сайта?

<script type='text/javascript'>
(function () {
    window['yandexChatWidgetCallback'] = function() {
        try {
            window.yandexChatWidget = new Ya.ChatWidget({
                guid: 
                buttonText: 'Начать чат ',
                title: 'Чат',
                theme: 'dark',
                collapsedDesktop: 'never',
                collapsedTouch: 'always'
            });
        } catch(e) { }
    };
    var n = document.getElementsByTagName('script')[0],
        s = document.createElement('script');
    s.async = true;
    s.src = 'https://chat.s3.yandex.net/widget.js';
    n.parentNode.insertBefore(s, n);


Всем привет, нужно чат яндекс.диалогов перенести с правой части сайта на левую.
Как это можно сделать?
Посмотрел код виджета, но строки с расположением не увидел.
Пробовал widgetPosition и просто position прописывать, но виджет даже не показывается на сайте.
  • Вопрос задан
  • 947 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Pelmenya
Скрипт Яндекс.Диалоги загружается асинхронно, поэтому синхронный код в JS выполняется первым и не отлавливает элемент виджета. Отключаем асинхронность, удалив опцию(строчку) в скрипте

//s.async = true; . Затем вешаем на событие DOMContentLoaded (https://learn.javascript.ru/onload-ondomcontentloaded) callBack

document.addEventListener('DOMContentLoaded', () => {
const yaChatWidget = document.querySelector('.ya-chat-widget');
});
} в callBack делаем с виджетом все, что хотим, ну или почти)
Ответ написан
Комментировать
mob-aksessuar
@mob-aksessuar
Не создай себе кумира.
Привет не как не получилось и не стал трогать сам код и воспользовался таким инструментом как живой сайт, так что попробуй.
Ответ написан
@jeserg
(function () {
    window['yandexChatWidgetCallback'] = function() {
        try {
            window.yandexChatWidget = new Ya.ChatWidget({
                guid: 'BEB9CD86-BB2E-4A86-BB9F-111956F9C2B7',
                buttonText: '',
                title: 'Чат',
                theme: 'light',
                collapsedDesktop: 'never',
                collapsedTouch: 'never'
            });
        } catch(e) { }
    };
    var n = document.getElementsByTagName('script')[0],
        s = document.createElement('script');
    s.async = false;
    s.charset = 'UTF-8';
    s.src = 'https://yastatic.net/s3/chat/widget.js';
    n.parentNode.insertBefore(s, n);
  })();
 
function ready() {
   const yaChatWidget = document.querySelector('.ya-chat-widget');
   if (yaChatWidget) {
       yaChatWidget.style.cssText = 'vertical-align: top!important; top: 500px!important; bottom: auto!important'
   }
}

document.addEventListener("readystatechange", ready);

простой вариант, он там разворачивается в высоту, поэтому не стали усложнять
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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