web-dev-qa-db-ja.com

IEおよびFFにはJQueryまたはonbeforeunloadを使用します

「index.template.html」ドキュメントで、JavaScriptを使用してFlex4アプリケーションで作業しています。 Firefoxでonbeforeunloadを使用できるという問題があります。アプリケーションはIEで完全に動作しますが、まったく同じものがFFでうまく動作しません。 (下記参照)

<script type="text/javascript">
window.onbeforeunload=before;
window.onunload=after;

function before(evt)
{
   var flex=document.$(application)||window.$(application);
   flex.unloadMethod(); //custom method to log out the user
}

function after(evt)
{

}
</script>

私が見つけたものから、FFはonbeforeunloadイベントを登録していないようです。そのため、代わりに使用するのがJQueryとのバインドであることがわかりました。したがって、上記のコードを削除して以下のコードに置き換えましたが、ユーザーがIEとFFの両方でページを離れようとしたときにポップアップが表示されません。これにJQueryを使用することはまったく同じことをしているようで、何が起こっているのかわかりません。

<script type="text/javascript">
$(window).bind("beforeunload",function(event){
   return "This should create a pop-up";
});
</script>

結局のところ、コードの最初のビットのように "flex.unloadMethod"を呼び出すのはいいことですが、とりあえずポップアップを機能させようとしているだけなので、正しい方向に進んでいることがわかります。どんな洞察もいただければ幸いです。

13
Brian

試してください:

<script>
    $(window).on('beforeunload', function(){
        return "This should create a pop-up";
    });
</script>

例: http://jsfiddle.net/AeztA/3/

30
Joe

追加したいのですが、Firefoxでは空の文字列を使用できないことを理解しました。たとえば、返品の場合、少なくとも1つの空白である必要があります。

var text = 'Exit Message';

$(window).on('beforeunload', function(){
    return " " + text;
});
1
neokjo