私はかなりAjax-heavy Webアプリケーションを作成しました。ユーザーが保存していない変更があるかどうかを検出し、ページから移動しないようにするために、window.onbeforeunload
イベントを使用しています。コードは私のinit関数によって読み込まれ、イベントをサポートしているすべてのブラウザで動作していました。しかし、突然、onbeforeunloadイベントは、明白な理由がなく、すべてのブラウザで起動を停止しました。私はjquery 1.7.1を使用していますが、さまざまな要素(委任または直接経由)に付随するイベントがたくさんあります。誰かがここで何が問題になるかもしれないかの手がかりを持っていますか?コードスニップは次のとおりです。window.onbeforeunloadが起動しない
$(document).ready(function() {
window.onbeforeunload = function(e) {
if($(window).data("confirm") > 0)
return "You have unsaved changes";
else
return null;
};
});
p.s.私がコールバック内からチェックを完全に削除して常に文字列を返す場合でも、毎回メッセージを表示するはずですが、それでもまだ起動しません。私は、自分のブラウザが、コールバックをバインドする単純なページのイベントで正しく動作していることを確認しました。
このコードスニペットは、私には正常に見えるようなエラーが、どこか別の場所であることも可能かもしれません。おそらく、発砲していますが、ダイアログを表示していませんか? – 11684
コンソールとは何ですか? – 11684
〜11684:イベントは間違いなく発砲していません。コンソールに何かを印刷してみましたが、何も得られません。また、ブレークポイントを追加してデバッグしようとしましたが、ページを終了するたびに一時停止しません。問題はどこか他の場所だと思いますが、ライブラリーの1つがそうでない限り、このページのどこでもこのイベントを混乱させることはありません... hmmm – nvrs