0

Facebook Javascript SDKを使用しているアプリケーションをコンパイルしようとしたときに、次の問題に遭遇しました。

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

これは私のセットアップです:

index.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 を非同期的に読み込んでおり、おそらくFB.getLoginStatusSDK が読み込まれる前にメソッドを呼び出しています。FB.getLoginStatusSDKがロードされた後にメソッドを呼び出します(つまり、あなたが持っている行で// Additional initialization code here

于 2012-09-28T14:57:10.483 に答える