2016-08-04 4 views
1

Firefoxでbeforeunloadイベントを処理します。ユーザーが手動でページをクリックするか、入力に何かを書き込む必要があることを除いて、正常に動作しています。ページをクリックしない限り、Firefoxは `beforeunload`イベントを呼び出しません。

次のコードはFirefoxで動作しますが、の場合はをクリックしてください。

<script> 
    popMessage = "Foo"; 
    window.addEventListener("beforeunload", function (e) { 
     (e || window.event).returnValue = popMessage;  //Gecko + IE 
     alert(popMessage); 
     return popMessage; 
    }); 
</script> 

私が追加しようとしました:

  • document.body.click()
  • <input type='text' autofocus>

の両方が任意の変更を行っていません。

また、jQueryを正しく処理することを期待してjQueryを使用しようとしました。それでも、同じものを取得する:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 
<script> 
    $(window).on('beforeunload', function(){ 
     return 'Are you sure you want to leave?'; 
    }); 
</script> 

これらはChromeではうまく動作しますが、Firefoxではうまく動作しません。ページ上でユーザーとのやりとりがなくても、この作業を行うことができますか?

答えて

1

developer.mozilla.orgは「不要なポップアップに対抗するために、ブラウザがbeforeunloadイベントハンドラで作成されたプロンプトをページが操作されていない限り表示しないことがあります」と述べています。だから、希望はありません。

+0

ああ...右。今や意味をなさないどうもありがとうございました! –

関連する問題