4

javascript Facebook SDK を Rails 4 アプリケーションに高速にロードするのに苦労しています。ターボリンクで正しく動作させる良い方法はありますか?

このコードを JS アプリケーション アセットに追加すると。ターボリンクが原因で正しく機能していません:

<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>

ありがとう

4

5 に答える 5

10

Facebook SDK と Turbolinks を統合するための適切なソリューションは、次の場所にあります。

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

于 2013-07-25T19:28:27.323 に答える
0

ビューの最後に Facebook JS コードを配置する場合flushは、コントローラ アクションで を使用して、Turbolinks で適切に完全にリロードされるようにします。

def show
  # ...
  render :show, flush: true
end

魅力のように働きました。

于 2015-08-06T07:33:09.990 に答える