2016-08-27 1 views
1

ユーザーがタブを閉じるか、ページを更新すると、サイトでこれを確認するためのポップアップが表示される必要があります。クローズまたはリフレッシュページでの確認がまったく機能しない

window.onbeforeunload = function (e) { 
    return confirm("Are you sure you want to leave this page?"); 
}; 

これはFirefoxやクロムのいずれかで動作しませんでした: 私はこのコードを試してみました。 Firefoxではポップアップが表示されませんでした。そしてクロムでは、デフォルトのものもオーバーライドされませんでした。 は、私も、次のコードを使用してみましたが、無駄に:

window.onbeforeunload = function (e) { 
    var dialogText = 'Are you sure about this?'; 
    e.returnValue = dialogText; 
    return dialogText; 
}; 

どのように私はこの問題を解決するのですか? コードスニペットが役立ちます。ありがとうございました。 Firefoxのドキュメントから

+0

可能な重複から[ポップアップウィンドウを作成する方法と、ブラウザを閉じる](http://stackoverflow.com/questions/4067796/how-to-create-popup-window-when-browser -close) – Matthijs

+0

[ブラウザのクローズイベントを検出しようとしています]の複製があります(http://stackoverflow.com/questions/20853142/trying-to-detect-browser-close-event) – Bobulous

+0

これはすでにこの同様の投稿http ://stackoverflow.com/questions/10310177/showing-a-jquery-popup-before-browser-window-closes –

答えて

1

私は、インターネット上でこのスニペットを見つけました:必要に応じて

window.onbeforeunload = function (e) { 
     return "Please click 'Stay on this Page' if you did this unintentionally"; 
    }; 

これは完璧に働いています。 私はあなたが実際に確認通話を加える必要がないことを知りました。文字列を返すだけであれば、ブラウザはページの終了を確認するように促します。ほとんどの市販ブラウザでは、この機能がデフォルトでサポートされています。

0

:不要なポップアップを戦うために

ページがと相互作用されていない限り、ブラウザはbeforeunloadイベントハンドラで作成されたプロンプトが表示されない場合があります。

ユーザーが以前にページとやり取りしていない場合は、ポップアップを表示できません。

1

Firefox 4、Chrome 51、Opera 38、およびSafari 9.1以降、返された文字列の代わりにウェブページの管理下にない一般的な文字列が表示されます。たとえば、Firefoxでは、「このページは退出することを確認するように要求しています。入力したデータが保存されない可能性があります」という文字列が表示されます。

- のMozilla Developer Docs

関連する問題