FB.init被调用两次,但我只有一个来自Facebook的类似按钮

时间:2013-10-17 14:42:58

标签: facebook facebook-graph-api facebook-like facebook-javascript-sdk

我目前正试图允许用户使用他们的Facebook帐户连接到我的网站,但我遇到了一些问题。

首先,您必须知道我已经使用此代码添加了一个Like按钮:

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

<script type="text/javascript">
    var urlfb = document.location.href;
     $(document).ready(function(){
        $('fb\\:like').attr('href', urlfb);
    });
</script>

所以我看到了关于如何将Facebook登录添加到他的网站的Facebook的帖子,但每次我启动粘贴FB代码的页面时,都会出现这个着名的错误消息:FB.init已被调用 - 这可能表明问题。

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
  FB.init({
    appId      : 'myappid', // App ID
    channelUrl : '', // Channel File
    status     : true, // check login status
    cookie     : true, // enable cookies to allow the server to access the session
    xfbml      : true  // parse XFBML
  });

我该怎么做才能删除此错误?我试图删除我的Like按钮,没有更多的错误,但我想保持这个按钮,所以我必须删除什么才能使它工作?

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:2)

#xfbml=1&appId=myappid添加到SDK网址的末尾会使其自动初始化 - 因此只需删除该部分,即可更改

js.src = "//connect.facebook.net/fr_FR/all.js#xfbml=1&appId=myappid";

js.src = "//connect.facebook.net/fr_FR/all.js";