我正在尝试异步加载 FB 的 javascript SDK。遵循以下说明:
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
});
我怎样才能让异步加载工作?我认为它实际上可能正在加载(因为当我结合同步/异步解决方案时,它告诉我 FB.init 已执行两次),但在 /assets/js/some-file.coffee 中的代码执行后加载。在运行该代码之前如何验证 FB 是否已加载(如果这是问题所在?)