4

はい、私はこれがひどい UI であり、アクセシビリティが悪いことを認識していますが、契約作業のためにオプションを探すことを余儀なくされています (最初は同意せず、行き詰まっています)。

イベントハンドラーを次のように割り当てることができることを知っていますonbeforeunload:

window.onbeforeunload = function() {
    return 'You have unsaved changes!';
}

これにより、カスタマイズできない OS/ブラウザーによって生成されたダイアログが表示されます。リクエストをキャンセルするか、続行するかを尋ねられます。

これまでのところ、カスタム性を表示できる唯一の方法はwindow.open、そのイベント ハンドラーに a を挿入することです。

window.onbeforeunload = function() {
     var x = window.open('modal.html');
}

これは、最新のブラウザによって「ポップアップ」としてブロックされる可能性が最も高いです。ダイアログでまったく新しいページを表示する必要がありますが、これが要求を満たす唯一の方法のようです。

これはほとんど私が持っている唯一のオプションですか?クライアントにこれを行うことは推奨されていないと強制的に伝える以外に?

他の唯一のオプションは、ユーザーが「リクエストのキャンセル」をクリックしてからダイアログを挿入することに依存することです。

私がすでに見た質問:

4

3 に答える 3

1

window.openアンロード前のルートに行きました。

于 2010-07-18T06:14:15.730 に答える
1

既に見た質問によると、ブラウザによって表示される文字列メッセージを渡す以外に、そのダイアログをカスタマイズすることはできません。

window.onbeforeunload - MDC

于 2010-07-15T15:14:02.277 に答える
-1

window.open の代わりに onbeforeunload 時に公開する非表示の Flash .swf を使用できます。

于 2010-07-15T15:15:23.960 に答える