FB.init已被调用 - 这可能表明

hyp*_*jas 0 facebook facebook-like

我有一个没有SDK的facebook按钮:

<fb:like href="<%= @canonical_url %>" send="" layout="button_count"></fb:like>
     <div id="fb-root"> </div>
     <script>
      // facebook recommend button
      window.fbAsyncInit = function() {
         FB.init({appId: 'myappid', status: true, cookie: true, xfbml: true});
      };
      (function() {
        // delay to simulate slow loading of Facebook library - remove this setTimeout!!
        var t = setTimeout(function() {
            var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol + '//connect.facebook.net/<%= locale_og_tag %>/all.js';
            document.getElementById('fb-root').appendChild(e);
        }, 0);
      }());
      </script>
  </div>
Run Code Online (Sandbox Code Playgroud)

我更改页面时没有重新加载facebook按钮,然后在我运行的javascript文件中:

if (typeof (FB) != 'undefined') {
    FB.init({ status: true, cookie: true, xfbml: true });
   } else {
    $.getScript("http://connect.facebook.net/en_US/all.js#xfbml=1", function () {
     FB.init({ status: true, cookie: true, xfbml: true });
   });
 }
Run Code Online (Sandbox Code Playgroud)

但我进入控制台:

FB.init has already been called - this could indicate a problem
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

谢谢!

Sea*_*sey 14

你有三次调用init - 两次显式调用FB.init,一次是隐式调用../all.js#xfbml=1.删除#xfbml=1部分以及任何一个,FB.init你应该是好的.

  • 顺便说一下,#xfbml = 1是什么意思? (2认同)