17

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

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>
4

2 回答 2

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="your link for like"。

于 2014-06-03T12:07:59.907 回答
4

有一种更新的方法来初始化 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>
于 2015-05-27T20:43:22.637 回答