javascript ページの離脱

今見ているページから別のページに移動しようとすると、
「このページを離れる」、「このページにとどまる」といった確認ダイアログが出てくるページを(ボタンの文言はブラウザ
ごとに異なる) よく見かけるようになった。

これは、onbeforeunload イベントを利用しているが利用シーンは問合わせ時に何かを入力していて問い合わせが
完了していない。
そんなときにページを移動すると入力した内容が失われてしまって戻ってきたときに再び同じ内容を入力しなければ
ならなくなる。
それに対する警告のようにも思えるが、onbeforeunload はページが切り替わるときなので、リロードでも発生する。
もちろん、この確認画面を出すかどうかのコントロールも必要で却って面倒になるときがある。

利用方法にもよるが、ほとんどの場合は AタグのクリックイベントやSUBMITを補足すれば事足りる。

var aObj = document.getElementsByTagName('A');
for(i=0; i < aObj.length; i++) {
    // 1.ここで aObj[i] から Aタグの属性を調べて
    // 2.ページ移動確認が必要ならばこのAタグにクリックイベントを登録する。
    aObj[i].addEventListener('click', function(ev){
        //ここで確認画面を出してコントロールする。
    }, false);
}

とこんな感じであれば確認画面も自前でデザインしてきれいに作れるでしょうし、状況に合わせて文言も自由自在に
できるのでこっちの方が好きです。