ページ移動のときに発動するイベントハンドラは
onUnload=""
ですが、
ある特定のときのみ発動しないようにするにはどうすればいいのでしょうか?
つまり、具体的に言うとフォームを送信するときにだけ、イベントハンドラを発動しないようにしたいのです。
ほかに良い方法があると思いますが、
簡単な方法だと
onUnloadの処理で動作しないで済むようにしたら良いでしょう。
以下のような関数側で対処するのが簡単です。
参考までサンプルを明示すると
onUnloadでthanks_msg()関数を実行するとして
フォームを送信(SUBMIT)時にpreSubmit()関数をCallする
という風にすれば難しいことではないです。
(参考)
var chkFlg = true;
function thanks_msg(){
if(chkFlg){
alert('また、遊びに来てくださいね。');
}
}
function preSubmit(){
chkFlg = false;
}
var execUnload = true;
としておき
onsubmit="execUnload = false"
とし、onunloadで行っている処理を
if (execUnload) {
// 処理
}
とすればうまくいくかと思います。
みなさん、どうも有難うございました。
どれも参考になる回答でした。
この中でどれか一つを使わせてもらいます。
また機会あるときはご教授くださるとうれしいです。