尚未创建“fb-root”div,自动创建

时间:2013-06-18 13:03:04

标签: facebook-graph-api

我在我的网页上使用FB like按钮,有时它会呈现,有时则不会,当我看到错误日志的控制台时显示错误

The "fb-root" div has not been created, auto-creating
在all.js中

我正在使用此代码

<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 = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=105911812857824";
        fjs.parentNode.insertBefore(js, fjs);
    } (document, 'script', 'facebook-jssdk'));
</script>


<div class="fb-like" data-send="false" data-width="450" data-show-faces="true">
                    </div>

2 个答案:

答案 0 :(得分:7)

使用以下代码

<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 = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=694586437259261&version=v2.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

并且还将此代码也放在

<div class="fb-like" data-href="https://developers.facebook.com/docs/plugins/" data-layout="standard" data-action="like" data-show-faces="false" data-share="false"></div>

你必须提供data-href =“你喜欢的链接”,这对你有用。

答案 1 :(得分:4)

newer way to initialize the API

您可以将appId放在init方法中,而不是嵌入在URL中。

他们甚至不建议你再使用fb-root。事实上,我真的不明白为什么你需要。您仍然会在控制台中收到警告,但我没有理由担心手动将其放入。

<script>

   window.fbAsyncInit = function() {
     FB.init({
       appId      : 'your-app-id',
       xfbml      : true,
       version    : 'v2.3'
     });
   };

   (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 = "//connect.facebook.net/en_US/sdk.js";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

</script>