« Struts マルチボックスのON/OFF制御について | トップページ | iBatis:ページング機能 »

onBeforeUnload の挙動について

画面がUnloadされる前に発生するイベント。
ちなみに onLoad は画面が表示された時(表示完了時)、onUnload は画面がUnload(画面遷移、×ボタン押下など)された時。Unloadされた時、なので画面自体はもう落ちて(遷移して)います。
画面遷移する前、または落ちるに何かしたい場合に、onBeforeUnload イベントを指定します。
よくあるのが、登録画面などで「登録してないけど遷移していいの?」的な確認でしょうか。

記述方法は
<BODY onBeforeUnload="XXXX">
で、XXXXには javaScript のファンクション名か、または javascript:alert("test"); などの様に直接スクリプトを記述します。
指定するファンクションの内容は、特に制限はありません。
また、onSubmit などと同様、return 値を受け取ることも可能。
<BODY onBeforeUnload="return XXXX">
但し、onSubmit などのように、boolean型 を受け取ることは出来ません。
onBeforeUnload で返される値は常に文字列として扱われ、その文字列は、画面遷移をしていいかどうかをユーザに確認するダイアログ内でメッセージとして使用されます。
<表示例>
「このページからほかのページに移動しますか?」
++++ここに戻り値である文字列を表示++++
「続行するには[OK]をクリックし、現在のページから移動しない場合は[キャンセル] をクリックしてください。」

false を返しても、ダイアログ内で false と表示されるだけです。
※false を返したからといって画面遷移や画面が閉じられるのをキャンセルできてしまっては、セキュリティ上問題がありますからね。。。セキュリティというか、動作としてはウィルスと同じようなものになってしまいます。

return で文字列を返さなければ、上記のダイアログは表示されません。記述された処理が終わればそのまま画面は落ちます。

ちなみにIE限定機能のようです。NNでは動かないとのこと。FireFoxなんかではどうなんでしょう。。未検証ですが。

|

« Struts マルチボックスのON/OFF制御について | トップページ | iBatis:ページング機能 »

「JavaScript」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/56395/1044356

この記事へのトラックバック一覧です: onBeforeUnload の挙動について:

« Struts マルチボックスのON/OFF制御について | トップページ | iBatis:ページング機能 »