ユーザーがページを離れようとしたときにポップアップするウィンドウで dojo ボタンを作成する必要があります。
dojo.addOnUnload(window, "test");
function test() {
if(hasPendingChange){
//function goes here i believe
}
}
これが正しい形式であると確信していますが、ユーザーの応答を待つ代わりにページを離れています。何か案は?
ありがとうございました!
ユーザーがページを離れようとしたときにポップアップするウィンドウで dojo ボタンを作成する必要があります。
dojo.addOnUnload(window, "test");
function test() {
if(hasPendingChange){
//function goes here i believe
}
}
これが正しい形式であると確信していますが、ユーザーの応答を待つ代わりにページを離れています。何か案は?
ありがとうございました!
beforeunload のデフォルトの実装をオーバーライドすることはできません。
イベントハンドラを window.onbeforunload に接続することは可能ですが、結果が予想とは異なる可能性があるため、複数のハンドラは問題になります。
はwindow.onbeforeunload
、ネイティブ JS エンジンによって呼び出される関数であり、String
. (常に) ネイティブconfirm(str)
ダイアログ ボックスがポップアップしstr
ます。つまり、 beforeunload 関数から返された場合です。
それがポップアップするのを止める唯一の方法confirm
は、ブロッキング呼び出し(のようなdijit.Dialog{..}).show(); while(1)
)を行うことですが、それは実際には実現可能ではありません。また、無限の while を壊したときに最終的にポップアップするダイアログで「いいえ」を選択するようにユーザーに伝える必要があります:)
だから、賢明な例
var g_ChangesMade = false;
window.onbeforeunload = function() {
return (g_ChangesMade == true ? "Leaving Page with unsaved changes" : null);
}
文字列を含む確認ダイアログを表示します - if global _ Changes Are Made
--------------------
| Leaving Page... |
| |
| Ok Cancel |
--------------------