16

ユーザーがオブジェクトをドラッグ アンド ドロップしてイメージとして保存できるページがあります。ユーザーがページから移動すると、イベントbeforeunloadが発生します。今、これは毎回起こります。私がやりたいことは、ユーザーが自分の作業を保存した場合にイベントをバインド解除して、メッセージが再びポップアップしないようにすることです。これを行う には、 jQueryでunbindメソッドを使用しました。しかし、うまくいかないようです。以下は、イベントをバインドおよびバインド解除するためのコードです。

var notSaved = function()
{
   return 'You have not yet saved your work.Do you want to continue? Doing so, may cause loss of your work' ;
}
$(window).bind('beforeunload', notSaved);

save メソッドが呼び出された後、

$(window).unbind('beforeunload', notSaved);

ここで何が間違っていますか?
また、save メソッドは実際には Ajax 呼び出しです。

4

2 に答える 2

36

beforeunloadバインディングに関する限り、この方法では確実に機能しません。ネイティブに割り当てる必要があります。

window.onbeforeunload = function() {
  return 'You have not yet saved your work.Do you want to continue? Doing so, may cause loss of your work' ;
}

そして、保存方法で:

window.onbeforeunload = null;
于 2010-12-16T09:50:12.090 に答える