8

ユーザーがウィンドウを閉じる前にメッセージを表示しようとしています。私は正常に動作している SweetAlert ( http://tristanedwards.me/sweetalert ) を使用しています。

問題は JavaScript/jQuery にあり、ユーザーがウィンドウ/タブを閉じようとしているときに通知し、再度クリックしない限りページを閉じるのを妨げる何かを表示します。

<script language="JavaScript">
    window.onbeforeunload = confirmExit;
    function confirmExit() {
        swal("Here's a message!");
        return "You have attempted to leave this page. Are you sure?";
    }
</script>

私はこれを試しましたが、SweetAlert の上に醜い通常のメッセージが表示されます。何かアイデアはありますか? とにかく戻り部分がなければウィンドウを閉じます、私は試しました:/

4

1 に答える 1

10

でアラートを無効にしたり、アラートのスタイルを変更したりすることはできませんonbeforeunload主な理由は、セキュリティ上の問題です。

MDN ドキュメントWindowEventHandlers.onbeforeunloadから、次のように書かれています。

このイベントが void 以外の値を返すと、ユーザーはページのアンロードを確認するよう求められます。ほとんどのブラウザーでは、イベントの戻り値がこのダイアログに表示されます。Firefox 4 以降では、返された文字列はユーザ​​ーに表示されません。代わりに、Firefox は「このページは、あなたが退出することを確認するように求めています - 入力したデータは保存されない可能性があります」という文字列を表示します。バグ 588292 を参照してください。

2011 年 5 月 25 日以降、HTML5 仕様では、window.alert()、window.confirm()、および window.prompt() メソッドの呼び出しは、このイベント中に無視される可能性があると規定されています。詳細については、HTML5 仕様を参照してください。

また、さまざまなモバイル ブラウザーがイベントの結果を無視することにも注意してください (つまり、ユーザーに確認を求めません)。Firefox の about:config には、同じことを行うための隠し設定があります。本質的に、これは、ドキュメントがアンロードされる可能性があることをユーザーが常に確認することを意味します。

于 2015-04-15T05:11:07.480 に答える