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 バッジはページが更新されたときにのみ表示されます。これは、適切に構成されていないターボリンク プロジェクトに期待される古典的な動作です。他に何をすべきか本当にわかりません。

スクリプトはクロムのアセットとしてロードされていますが、他のすべての後にロードする必要があります。このオンライン コンバーターを使用して既存のスクリプトを変換しました。これはコーヒー スクリプトとして機能しますが、更新後にのみ機能します。

アップデート

ここが気になるところです。5行目にconsole.log見えますか?これは、新しいページのロード時に初めてコンソールに正常に記録されますが、何が起こっているのでしょうか?

4

1 に答える 1

0

Rails 5では、これを試してください:

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