私はかなりajaxを多用するWebアプリを作成しました。このwindow.onbeforeunload
イベントを使用して、ユーザーによる未保存の変更があるかどうかを検出し、ユーザーがページから移動できないようにします。コードは私のinit関数によって読み込まれ、イベントをサポートするすべてのブラウザーで機能するために使用されていました。ただし、明らかな理由もなく、突然onbeforeunloadイベントがすべてのブラウザで発生しなくなりました。私はjquery1.7.1を使用していますが、さまざまな要素に(委任を介して、または直接)多くのイベントが関連付けられています。誰かがここで問題になるかもしれない手がかりを持っていますか?コードスニップは次のとおりです。
$(document).ready( function() {
window.onbeforeunload = function(e) {
if($(window).data("confirm") > 0)
return "You have unsaved changes";
else
return null;
};
});
psコールバック内からチェックを完全に削除し、常に文字列を返す場合でも、毎回メッセージを表示する必要がありますが、それでも起動しません。コールバックをバインドする単純なページを使用して、ブラウザーがイベントで正しく機能していることを確認しました。