【发布时间】:2013-08-20 00:12:45
【问题描述】:
在启用 Turbolinks 的情况下,我无法将 Facebook 社交插件(特别是评论)添加到我的 Rails 4 应用程序。我按照turbolinks issue #62 上的示例进行操作,但无法正常工作。
我也尝试了 turbolink 的解决方案 here,但无法正常工作。
根据this answer 修复 turbolinks 页面上明显的拼写错误也不起作用。
SDK 未加载且控制台中没有错误。
代码:
### view:
<div id="fb-root"></div>
<div class="fb-comments" data-href="<%= request.original_url %>"></div>
### coffeescript:
fb_root = null
fb_events_bound = false
$ ->
loadFacebookSDK()
bindFacebookEvents() unless fb_events_bound
bindFacebookEvents = ->
$(document)
.on('page:fetch', saveFacebookRoot)
.on('page:change', restoreFacebookRoot)
.on('page:load', ->
FB.XFBML.parse()
)
fb_events_bound = true
saveFacebookRoot = ->
fb_root = $('#fb-root').detach()
restoreFacebookRoot = ->
if $('#fb-root').length > 0
$('#fb-root').replaceWith fb_root
else
$('body').append fb_root
loadFacebookSDK = ->
window.fbAsyncInit = initializeFacebookSDK
$.getScript("//connect.facebook.net/en_US/all.js#xfbml=1")
initializeFacebookSDK = ->
FB.init
appId : 'xxxxxxxxxxxx'
channelUrl: '//www.mydomain.com/channel.html'
status : true
cookie : true
xfbml : true
### /public/channel.html
<script src="//connect.facebook.net/en_US/all.js"></script>
--
谢谢。非常感谢您的帮助。
【问题讨论】:
-
问题解决了吗?
标签: ruby-on-rails facebook facebook-javascript-sdk ruby-on-rails-4 turbolinks