13

「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」を呼び出すとよいでしょうが、当面はポップアップを機能させようとしているだけなので、正しい軌道に乗っていることがわかります。どんな洞察も大歓迎です。

4

2 に答える 2

30

試す:

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

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

于 2013-05-21T18:41:22.447 に答える
1

追加したいのですが、Firefox では空の文字列を使用できないことがわかりました。たとえば return のように、少なくとも 1 つの空白が必要です。

var text = 'Exit Message';

$(window).on('beforeunload', function(){
    return " " + text;
});
于 2014-11-13T16:40:19.647 に答える