首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义FB.ui

未定义FB.ui
EN

Stack Overflow用户
提问于 2018-06-13 17:57:50
回答 1查看 638关注 0票数 0

使用BugSnag,我可以看到我们网站上的一些用户遇到了这个错误:

代码语言:javascript
复制
FB.ui is not a function

当我访问该网站并到达该错误出现的页面时,我没有任何问题。

下面是我们要分享给fb的脚本:

代码语言:javascript
复制
<div id="fb-root"></div>
<script>
    (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.js#xfbml=1&version=v2.12&appId=1365705806909063&autoLogAppEvents=1';
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>

<div class="x-custom-col" id="share-fb-btn">
    <a class="x-fb x-btn" data-social-type="fb-share" data-eventlabel="inlineshare">
        <i class="ico-facebook"></i>
        <span>Share to Facebook!</span>
    </a>
</div>

<script>
    document.getElementById('share-fb-btn').onclick = function() {
        FB.ui({
            method: 'share_open_graph',
            action_type: 'og.shares',
            action_properties: JSON.stringify({
                object: {
                    'og:url':"http://www.example.com/",
                    'og:title': "Here is some info to share!".",
                    'og:description': "Decribe it!",
                    'og:image': "https://www.example.com/image"
                }
            })
        },
        function (response) {
            // Action after response
        });
    }
</script>

这似乎只发生在我们的移动布局。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-13 18:43:14

如果有人使用工具阻止用于社交媒体和分析的外部脚本,就会发生这种情况。它阻止加载脚本,这样FB就不会被初始化,FB.ui也就不存在了。

您可以通过检查FB是否存在,或者通过在window.fbAsyncInit JavaScript的回调中添加单击侦听器来解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50843473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档