【发布时间】:2016-08-06 06:17:04
【问题描述】:
在我的 Rails 应用程序中,我正在加载 Facebook 插件页面,但由于 turbolinks,它不会加载每个页面(仅有时)。我试过 this script on this page ,但现在它永远不会加载。我做了什么?
我用这个脚本创建了 facebook.coffee:
$ ->
loadFacebookSDK()
bindFacebookEvents() unless window.fbEventsBound
bindFacebookEvents = ->
$(document)
.on('page:fetch', saveFacebookRoot)
.on('page:change', restoreFacebookRoot)
.on('page:load', ->
FB?.XFBML.parse()
)
@fbEventsBound = true
saveFacebookRoot = ->
if $('#fb-root').length
@fbRoot = $('#fb-root').detach()
restoreFacebookRoot = ->
if @fbRoot?
if $('#fb-root').length
$('#fb-root').replaceWith @fbRoot
else
$('body').append @fbRoot
loadFacebookSDK = ->
window.fbAsyncInit = initializeFacebookSDK
$.getScript("//connect.facebook.net/cs_CZ/sdk.js#xfbml=1&version=v2.6")
initializeFacebookSDK = ->
FB.init
appId : 'YOUR_APP_ID'
status : true
cookie : true
xfbml : true
然后在我的 application.js 中我只需要它。
鉴于我有这个代码:
<div id="fb-root"></div>
<div class="fb-page" data-href="https://www.facebook.com/mypage/" data-tabs="timeline" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true"><div class="fb-xfbml-parse-ignore"><blockquote cite="https://www.facebook.com/mypage/"><a href="https://www.facebook.com/mypage/">MyPage</a></blockquote></div></div>
Facebook 插件页面未加载。你不知道为什么?我正在查看 appId,但在插件页面中它不包括在内。
【问题讨论】:
-
我在使用该脚本时遇到了同样的问题。到目前为止我所知道的是 $.getScript() 删除了 URL 的查询部分并将其替换为时间戳,这就是为什么我们从 Facebook 的 API 中收到无效版本错误
标签: javascript ruby-on-rails coffeescript turbolinks