2

我有这个脚本:

   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 行看到了吗?在加载新页面时第一次成功登录到控制台,那么发生了什么?

4

1 回答 1

0

在 Rails 5 中,试试这个:

$(document).on('turbolinks:load', function() {
  // your code goes in here
});
于 2016-09-19T07:36:59.897 回答