Как вызвать «Яндекс чат» отдельной кнопкой с помощью метода «dispatchEvent»?

Есть чат от "Яндекс" размещенный на сайте, скрыл его на смартфонах, чтобы не мешал, но хочу вызывать его отдельной кнопкой в меню, как можно реализовать?
#livechat_mobile - id кнопки в меню

Скрипт чата:
(function () {
        if($(document).width()< 400){return;}
        window['yandexChatWidgetCallback'] = function() {
            try {
                window.yandexChatWidget = new Ya.ChatWidget({
                    guid: '47c5579c-d37f-4cd4-9b40-93e72da02a76',
                    buttonText: 'Онлайн чат',
                    title: 'Онлайн консультация',
                    theme: 'light',
                    collapsedDesktop: 'never',
                    collapsedTouch: 'always'
                });
            } catch(e) { }
        };
        var n = document.getElementsByTagName('script')[0],
        s = document.createElement('script');
        s.async = true;
        s.charset = 'UTF-8';
        s.src = '/s3/chat/widget.js';
//      s.src = 'https://yastatic.net/s3/chat/widget.js';
        n.parentNode.insertBefore(s, n);
    })();


Пример от @marioKun:
let button = document.querySelectorAll('body > div.ya-chat-widget.ya-chat-widget_desktop.ya-chat-widget_theme_light.ya-chat-widget_size_normal > a')[0];

$('#livechat_mobile').on('click', function(){
    button.dispatchEvent(new Event('click'));
    });

Пример не сработал, вызывает ошибку
Uncaught ReferenceError: button is not defined
at HTMLAnchorElement. ((index):4861)
at HTMLAnchorElement.dispatch (jquery-2.1.3.min.js?154355934684320:3)
at HTMLAnchorElement.r.handle (jquery-2.1.3.min.js?154355934684320:3)
(anonymous) @ (index):4861
dispatch @ jquery-2.1.3.min.js?154355934684320:3
r.handle @ jquery-2.1.3.min.js?154355934684320:3

Пробовал другие варианты, но не выходит...
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
@marioKun
Привет, попробуй так:
$('#livechat_mobile').on('click', function(){

let button = document.querySelectorAll('.ya-chat-button')[0];

 button.dispatchEvent(new Event('click'));
    });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы