railsでbeforeunloadイベントが発生しないとき

■ 状況
railsでbeforeunloadイベントを使用して、ページ遷移時に警告を出そうとしたところ、aのリンクで意図した動作がしない。

■ 原因
railsでturbolinkを使っている場合、ページをリロードせずに画面を書き換えるため、beforeunloadイベントが発生しない。

■ 対策
対策としては以下のあたり。

  • turbolinkを使用しない
  • aのリンクにdata-turbolinks="false"を指定して、turbolinkを部分的に使用しないようにする
  • page:before-change のイベントを使用する
Posted at : 2018-02-22 22:27:31 / Category : rails