gpt4 book ai didi

javascript - Rails Turbolinks 中的 Facebook 插件页面无法加载

转载 作者:行者123 更新时间:2023-11-30 16:08:36 25 4
gpt4 key购买 nike

在我的 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 中我只需要它。

在 View 中我有这段代码:

<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,但在插件页面中没有包含它。

最佳答案

这对我有用...Facebook 的文档和您链接的页面上的脚本之间的某种组合

$ ->
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 = ->
((d, s, id) ->
js = d.getElementsByTagName(s)[0]
fjs = d.getElementsByTagName(s)[0]
return if d.getElementById(id)
js = d.createElement(s)
js.id = id
js.src = "https://connect.facebook.net/es_LA/sdk.js#xfbml=1&version=v2.5"
fjs.parentNode.insertBefore(js, fjs)
)(document, 'script', 'facebook-jssdk')

initializeFacebookSDK = ->
FB.init
# appId : 'YOUR_APP_ID'
status : true
cookie : true
xfbml : true

区别在于 loadFacebookSDK 函数。请注意,正如我在问题中评论的那样,$.getScript() 删除了请求的查询/参数部分。

关于javascript - Rails Turbolinks 中的 Facebook 插件页面无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36627415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com