FBのjavascriptSDKを非同期で読み込もうとしています。これらの指示に従ってください:
http://developers.facebook.com/docs/reference/javascript/
ただし、次のコードが/ Assets / js / some-fileで実行される場合、「FB」は未定義です。
$(window).load ->
setFbSize()
setFbSize = ->
FB.Canvas.setSize # This triggers the error
...
同期ロードは正常に機能します。application.html.hamlに以下をロードすると、動作させることができます。
%script{:src => "http://connect.facebook.net/en_US/all.js"}
...そしてこれを私のindex.html.hamlに含めます:
:javascript
FB.init({
appId:'#{CONFIG['app_id']}', cookie:true,
status:true, xfbml:true
});
非同期ロードを機能させるにはどうすればよいですか?実際にはロードされていると思いますが(synch / asynchソリューションを組み合わせると、FB.initが2回実行されたことがわかります)、/assets/js/some-file.coffeeのコードが実行された後にロードされます。そのコードを実行する前にFBがロードされたことを確認するにはどうすればよいですか(それが問題である場合)。