ラボ > Javascript関連:イベント関連

jquery ページを離れようとしたときにメッセージ表示

formで入力したあと、ブラウザの戻るを防ぎたいけど・・・その代案。

作成日:2018-04-17, 更新日:2018-04-17

基本

「beforeunload」というイベントを使う。
以前は、表示させるメッセージを指定できたけど、現状はできないっぽい。
※変なコトをするヤツらのせいで・・・(ブラウザにもよるかもしれないが)メッセージは変更不可(2018/04/17時点)。

出来ればブラウザの「戻る」ボタンを押したときのイベントを拾ってゴニョゴニョしたい。
でも、出来ないんだか・・・かなり面倒なんだか・・・とりあえず任意のタイミングで「ページを離れる(ページ遷移)」するときにワンクッション置く感じにする。

サンプル

「ページを離れる」でメッセージ表示(条件なし)

$(window).on('beforeunload',function(){
  return true;
});

「入力があった or 特定の条件を満たす」+「ページを離れる」でメッセージ表示

var isConfirm = false;
$(window).on('beforeunload',function(){
  if ( isConfirm ) {
    return true;
  }
});

// 何かのタイミングなり、条件で値を変更させる
isConfirm = true;