В нашем веб-приложении есть плагин чата для клиентов Facebook, и он отлично работает.
Но у нас есть требование, чтобы иметь возможность изменить page_id, на который он указывает (поэтому пользователи общаются на разных страницах, связанных с нашимприложение).Поэтому я попытался не включать div в index.html
<div class="fb-customerchat" page_id="MY PAGE ID"></div>
, а динамически добавлять его в код (мы используем Angular 1.5):
let fbChatDiv = document.createElement('div');
fbChatDiv.className = 'fb-customerchat';
fbChatDiv.setAttribute('page_id', page_id);
fbChatDiv.setAttribute('ref', '');
document.body.appendChild(fbChatDiv);
thisподход на самом деле работает ... вроде.Когда я тестирую локально, это работает в половине случаев.Когда я пробую его на сервере, он не работает.
Появляется пузырь чата, но при нажатии на него ничего не происходит.
Я заметил, что когда он работает, есливы идете и проверяете html, div исчезает, как будто он «потребляется» (я полагаю, что это FB javascript sdk), а когда этого не происходит, div остается в html-элементах.Поэтому я предполагаю, что во время загрузки страницы происходит некоторая обработка, которая берет div и заменяет его на iframe из facebook, и по какой-то причине это не происходит в нужное время (случайно на моем локальном компьютере, никогда на сервере)).
Поэтому мне было интересно, имел ли кто-либо еще этот вариант использования и как он был решен, или, по крайней мере, получил некоторое представление о том, как SDK facebook получает div и внедряет содержимое iframe.