TwitterボタンをTurbolinksに対応
TwitterボタンをTurbolinksに対応した時のメモ。
TwitterボタンをTurbolinksに対応
twttr_events_bound = false $ -> loadTwitterSDK -> bindTwitterEventHandlers() unless twttr_events_bound bindTwitterEventHandlers = -> $(document).on 'turbolinks:load', renderTweetButtons twttr_events_bound = true renderTweetButtons = -> $('.twitter-share-button').each -> button = $(this) button.attr('data-url', document.location.href) unless button.data('url')? button.attr('data-text', document.title) unless button.data('text')? twttr.widgets.load() loadTwitterSDK = (callback) -> $.getScript("//platform.twitter.com/widgets.js", callback)
Turbolinks Compatibilityに掲載されているコードでは、Turbolinks5の環境では動かなかったので読み込み方法を修正。
変更前
$(document).on 'page:load', renderTweetButtons
変更後
$(document).on 'turbolinks:load', renderTweetButtons