2

私はこの機能を持っています

 window.onbeforeunload = function () {        
          return "Are you sure?";        
    };

ユーザーが押すとウィンドウが更新されて画面の値が更新され、データベース呼び出しが行われるボタンがあります。onbeforeunload を無効にする関数の先頭に追加window.onbeforeunload=null;しましたが、呼び出され続けました。

ボタンの onclick 関数で onbeforeunload 関数を無効にするか、window.onbeforeunload を更新時ではなく、ウィンドウを閉じるときにのみ呼び出されるようにする方法はありますか?

4

2 に答える 2

5

次のコードが機能するはずです(スクリプトタグ間のヘッドタグ内に保持する必要があります)

window.onload=function(){

    window.onbeforeunload = function(){        
        return "Are you sure?";        
    }

    document.getElementById('refresh').onclick=function(){
        window.onbeforeunload = null;
        window.location.reload(); // replace with your code
    }
}​

ワーキングデモ。

于 2012-06-18T17:55:51.340 に答える
1

もう 1 つの方法は、Cookie を使用することです。onbeforeunload 関数を呼び出さずにページを更新する場合と同様に、Cookie をフラグとして設定します。

 window.onbeforeunload = function (e) { 
...      
   canceled = getCookie("canceled");
         if (canceled == "false" || canceled == undefined)
          {//do ur stuff here
          }
...
}

Cookie を 5 秒に設定して、ページをリロードした直後に有効期限が切れるようにします。

于 2012-06-18T19:51:41.617 に答える