Facebook SDK和rails 4 Turbolinks

Jon*_*lla 4 facebook ruby-on-rails turbolinks

我很难尝试将javascript Facebook SDK加载到我的rails 4应用程序中.有没有一种方法可以让它与turbolinks一起正常工作?

如果我在我的JS应用程序资产上添加此代码.由于turbolinks,它无法正常工作:

<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>
Run Code Online (Sandbox Code Playgroud)

谢谢

Pie*_*tel 10

您可以在此处找到将Facebook SDK与Turbolinks集成的正确解决方案:

http://reed.github.io/turbolinks-compatibility/facebook.html


Gal*_*len 7

当我使用turbo链接在页面之间导航时,我遇到了Like Box无法加载的问题.我的解决方案是social.js.coffee在我的assets/javascripts文件夹中创建一个.它只是在这个文件中

$(document).on 'page:change', ->
  FB.init({ status: true, cookie: true, xfbml: true });
Run Code Online (Sandbox Code Playgroud)

我知道要把它放在自己的文件中很多;-),但我的想法是我知道谷歌分析,推特和其他人会有相同的冲突,这也是一个很好的地方来容纳这些解决方案.