Скрыть диалог приветствия плагина чата для клиентов Facebook при загрузке страницы
Я пытался скрыть диалоговое окно приветствия подключаемого модуля чата при начальной загрузке страницы. Вот вещи, которые не сработали:
- Атрибут приветствие_dialog_display
- Атрибут приветствие_диалога
Что было странно, потому что другие атрибуты, такие как theme_color и logged_in_greeting, работают отлично.
Я использую функцию fbAsyncInit, чтобы убедиться, что я запускаю код после инициализации плагина. Я использовал это для подписки на такие события, как customerchat.show, customerchat.load и т. Д., А затем скрывал диалог, но это тоже не сработало.
Также попытался установить для xfbml значение false, а затем проанализировать его для использования FB.CustomerChat.show(shouldShowDialog: boolean) со значением false, но безрезультатно.
Вот код:
<!-- Load Facebook SDK for JavaScript -->
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v3.2'
});
$(document).trigger('fbload');
};
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<!-- Your customer chat code -->
<div class="fb-customerchat"
attribution=setup_tool
page_id="123456789"
greeting_dialog_display="fade"
greeting_dialog_delay="10"
theme_color="#ff7e29">
</div>
<script>
$(function() {
$(document).on('fbload', function() {
console.log('fb loaded!');
});
});
</script>
3 ответа
Вы должны изменить:
<div class="fb-customerchat"
attribution=setup_tool
page_id="123456789"
greeting_dialog_display="fade"
greeting_dialog_delay="10"
theme_color="#ff7e29">
</div>
TO:
<div class="fb-customerchat" attribution=setup_tool page_id="123456789" greeting_dialog_display="fade" greeting_dialog_delay="10" theme_color="#ff7e29"></div>
Сделайте тег div в одну строку. Меня устраивает
У меня такая же проблема. Что я сделал неправильно, так это то, что я поместил свой HTML-код над сценарием, потому что мне нужно было разместить его в определенном месте, поэтому я поместил все сценарии внизу страницы, а HTML-код для мессенджера был в центре моей страницы. Поэтому постарайтесь разместить сценарий над ним.
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'MY_APP_ID',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.12'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="supportTeam">
<div class="trigger"></div>
<div class="messenger">
<div class="fb-customerchat"
page_id="YOUR_PAGE_ID"
theme_color="#0084ff"
greeting_dialog_display="hide"
logged_in_greeting="Welcome, How we may help you"
logged_out_greeting="Welcome, How we may help you">
</div>
</div>
</div>
Если это не помогает, попробуйте получить последнюю версию SDK или проверьте консоль. Они дают вам ошибки в случае, если что-то не так.
Атрибут приветствие_dialog_display работает, если скрыто. Диалоговое окно просто остается открытым при щелчке значка мессенджера, поскольку закрыть его невозможно, если вы не войдете в мессенджер.