2

私はjQueryバインドを使用しています:

$(window).bind('beforeunload', function() {
   //code
   return "";
   }

"" を返さなければ、mozilla firefox、IE8 では問題なく動作します。「このページから移動してもよろしいですか?」という警告ボックスは表示されません。ただし、Google Chrome では、return "" ステートメントがないと beforeunload イベントが機能しません。

return"" を使用すると、すべてのブラウザに警告ボックスが表示されます。

ダイアログ ボックスが不要で、beforeunload イベントが機能するようにしたい。助けてください。これに代わる他の解決策があれば提案してください。ありがとう。

4

1 に答える 1

1

onbeforeunload の動作はブラウザ間で一貫していません

async falsebeforeunload イベントで呼び出すすべての ajax 呼び出しを内部関数に設定してから、この醜いハックを試してください。

$(window).on('beforeunload', function (e) {
    if (e.originalEvent) 
       //Call function for updating omniture site 
    else  //this is to provide enough time to all your other requests to be send
    $.get("", {
        async: false
    });
    $(this).trigger('beforeunload'); //will create kind of infinite loop
    //this is an ugly hack because many useless request will be send (but nowhere)
}

それをテストして、私に知らせてください。

于 2013-07-31T12:21:53.703 に答える