1

我正在尝试使用 Facebook Javascript SDK,现在我只是将此代码粘贴到具有类似按钮的 erb 模板中:

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/es_LA/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

但是,在 Facebook 开发者文档中,据说在 body open 标签之后直接使用类似这样的内容:

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    // init the FB JS SDK
    FB.init({
      appId      : 'YOUR_APP_ID',                        // App ID from the app dashboard
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel file for x-domain comms
      status     : true,                                 // Check Facebook Login status
      xfbml      : true                                  // Look for social plugins on the page
    });

    // Additional initialization code such as adding Event Listeners goes here
  };

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

所以,我的问题是:

-> 我应该把这段代码放在哪里?在我的布局或使用 jQuery 的 Javascript 文件中执行所有这些逻辑?

4

1 回答 1

0

将代码放入主模板的底部,例如 application.html.erb 或 base.html.erb [如果您有从应用程序控制器继承的基本控制器]

于 2013-08-12T01:02:11.170 回答