我有这个脚本:
ready = ->
((d, s, id) ->
js = undefined
fjs = d.getElementsByTagName(s)[0]
console.log("Loaded")
return if d.getElementById(id)
js = d.createElement(s)
js.id = id
js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1"
fjs.parentNode.insertBefore js, fjs
) document, "script", "facebook-jssdk"
$(document).ready(ready) $(document).on('page:load',ready)
它用于在网站上创建 Facebook 徽章。然而,尽管创建了一个ready
函数并在 上加载了该函数page:load
,但 Facebook 徽章仅在页面刷新时出现,这是未正确配置的 turbolinks 项目所期望的经典行为。我真的不知道还能做什么。
该脚本正在作为 chrome 中的资产加载,但必须在其他所有内容之后加载。我使用这个在线转换器来转换一个现有的脚本,它确实像咖啡脚本一样工作,但只有在刷新之后。
更新
这是令人担忧的事情。console.log
在第 5 行看到了吗?在加载新页面时第一次成功登录到控制台,那么发生了什么?