iframe を含む Web アプリがあります。主要部分で、クライアントは ajax によってサーバーと通信します。さらに、 beforeunload = function(){ return "something";} を追加したため、ユーザーがブラウザの戻るボタンをクリックするとアラートが表示され、ユーザーがページを離れるをクリックすると、セッションが失われ、ログインしますページが表示されます。iframe部分ではサーブレットを使用しているため、ユーザーがブラウザーの戻るボタンをクリックしても、iframeページのみがアンロードされるため、アラートは表示されません。今、私が達成したいこと。ユーザーがiframeで操作しているときに、ブラウザの戻るボタンをクリックするとアラートが表示され、ユーザーがページを離れるをクリックすると、アプリ全体をログオフしたい. 彼が iframe 内のページを離れないでクリックすると、リロードされません。
アンロードとアンロードの前に2つのイベントを使用してこれを解決しようとしました。これはiframe内にあります:
var confirm = false;
var clicked = true;
$(window).on('beforeunload', function(evt){
if(confirm){
return "Text";
} else {
clicked = false;
}
});
$(window).on('unload',function(evt){
if(clicked){
$(this).off('beforeunload');
window.parent.location = window.parent.location + "/error";
}
});
iframe で操作しているユーザーがブラウザの戻るボタンをクリックすると、アラートが表示されるようになりました。ページを離れるクリックがうまく機能したら、ログアウトします。しかし、クリックが離れない場合、iframeのページは以前に戻ってしまい、理由はわかりません:(.それを防ぎたい.