0

我在尝试编译使用Facebook Javascript SDK的应用程序时偶然发现了一个问题:

[ERROR] ReferenceError: Can't find variable: FB

这是我的设置:

索引.html

...


<script id="microloader" type="text/javascript" src="sdk/microloader/development.js"></script>

  <!-- dependencies -->
  <script>
    window.fbAsyncInit = function() {
      FB.init({
        appId      : 'XXXXXXXXXXXXX', // App ID
        channelUrl : '//payme.com:3000/channel.html', // Channel File
        status     : true, // check login status
        cookie     : true, // enable cookies to allow the server to access the session
        xfbml      : true  // parse XFBML
      });

      // Additional initialization code here
    };

    // Load the SDK Asynchronously
    (function(d){
       var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
       if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = "//connect.facebook.net/en_US/all.js";
       ref.parentNode.insertBefore(js, ref);
     }(document));
  </script>
...

Home.js(捕获错误的地方)

...
  config: {
    controls: {
      mainView: {
        initialize: 'initView'
      }
    }
  },

  initView: function() {
    var me = this;

    FB.getLoginStatus(function(response) {
      if(response.status === 'connected') {       
        ...
      } else {
        ...
      }
    });
  },
...

我尝试异步和同步加载 Facebook SDK,将脚本标签放在微加载器之前和之前,但没有任何效果。

关于如何解决这个问题的任何想法?

4

1 回答 1

1

您正在异步加载 Facebook JavaScript SDK,并且可能在加载 SDK 之前调用该方法FB.getLoginStatus。加载 SDK 后调用该方法FB.getLoginStatus(即在您拥有的行上// Additional initialization code here

于 2012-09-28T14:57:10.483 回答