はい、私はこれがひどい UI であり、アクセシビリティが悪いことを認識していますが、契約作業のためにオプションを探すことを余儀なくされています (最初は同意せず、行き詰まっています)。
イベントハンドラーを次のように割り当てることができることを知っていますonbeforeunload
:
window.onbeforeunload = function() {
return 'You have unsaved changes!';
}
これにより、カスタマイズできない OS/ブラウザーによって生成されたダイアログが表示されます。リクエストをキャンセルするか、続行するかを尋ねられます。
これまでのところ、カスタム性を表示できる唯一の方法はwindow.open
、そのイベント ハンドラーに a を挿入することです。
window.onbeforeunload = function() {
var x = window.open('modal.html');
}
これは、最新のブラウザによって「ポップアップ」としてブロックされる可能性が最も高いです。ダイアログでまったく新しいページを表示する必要がありますが、これが要求を満たす唯一の方法のようです。
これはほとんど私が持っている唯一のオプションですか?クライアントにこれを行うことは推奨されていないと強制的に伝える以外に?
他の唯一のオプションは、ユーザーが「リクエストのキャンセル」をクリックしてからダイアログを挿入することに依存することです。
私がすでに見た質問: