JavaScriptに関する質問です。

ページ移動のときに発動するイベントハンドラは
onUnload=""
ですが、
ある特定のときのみ発動しないようにするにはどうすればいいのでしょうか?
つまり、具体的に言うとフォームを送信するときにだけ、イベントハンドラを発動しないようにしたいのです。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2006/06/19 21:08:21
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:godhoruseye No.1

回答回数23ベストアンサー獲得回数2

ポイント27pt

ほかに良い方法があると思いますが、

簡単な方法だと

onUnloadの処理で動作しないで済むようにしたら良いでしょう。

以下のような関数側で対処するのが簡単です。

参考までサンプルを明示すると

onUnloadでthanks_msg()関数を実行するとして

フォームを送信(SUBMIT)時にpreSubmit()関数をCallする

という風にすれば難しいことではないです。

(参考)

var chkFlg = true;

function thanks_msg(){

if(chkFlg){

alert('また、遊びに来てくださいね。');

}

}

function preSubmit(){

chkFlg = false;

}

id:yo-kun No.2

回答回数220ベストアンサー獲得回数30

ポイント27pt

onsubmitイベントハンドラで

window.onunload=null;

としてやればよいと思います。

id:vector_xenon No.3

回答回数113ベストアンサー獲得回数4

ポイント27pt

var execUnload = true;

としておき

onsubmit="execUnload = false"

とし、onunloadで行っている処理を

if (execUnload) {

// 処理

}

とすればうまくいくかと思います。

id:Bain

みなさん、どうも有難うございました。

どれも参考になる回答でした。

この中でどれか一つを使わせてもらいます。

また機会あるときはご教授くださるとうれしいです。

2006/06/19 21:07:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません