在页面加载时隐藏Facebook客户聊天插件的问候对话框

时间:2019-02-01 11:19:40

标签: javascript facebook facebook-customer-chat

我一直在尝试在初始页面加载时隐藏客户聊天插件的问候对话框。 以下是无效的内容:

  • greeting_dialog_display属性
  • greeting_dialog_delay属性

这很奇怪,因为其他属性(例如theme_color和logging_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 个答案:

答案 0 :(得分:2)

您应该更改:

<div class="fb-customerchat"
  attribution=setup_tool
  page_id="123456789"
  greeting_dialog_display="fade"
  greeting_dialog_delay="10"
  theme_color="#ff7e29">
</div>

收件人:

<div class="fb-customerchat" attribution=setup_tool page_id="123456789" greeting_dialog_display="fade" greeting_dialog_delay="10" theme_color="#ff7e29"></div>

将div标签排成一行。它对我有用

答案 1 :(得分:1)

我有同样的问题。 我做错的是,我将HTML放在脚本上方,因为我需要将其放在特定位置,因此我将所有脚本放在页面底部,而Messenger的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,或检查控制台。如果出现问题,它们会给您错误。

答案 2 :(得分:0)

设置为隐藏时,greeting_dialog_display属性可以正常工作。单击Messenger图标后,对话框将保持打开状态,因为除非登录Messenger,否则无法关闭对话框。