0

jQuery BlockUIプラグインを使用して、ユーザーが URL を変更したり、リンクをクリックしたり、リダイレクトされたり、どこかに行ったりするたびに、素敵な (「お待ちください...」) メッセージを表示しています。

$(window).on('beforeunload', function(){$.blockUI();});

ここで、このメッセージをボタンで強化してCancel、そのようなリダイレクトを防ぎ、ユーザーが現在のページにとどまるようにしたいと思います。これは私に質問につながります: Javascript で進行中の URL 変更プロセスを停止する方法はありますか? Cancelまたは、このボタンのクリックイベントにバインドできる他の方法/解決策はありますか?

私は愚かなことや役に立たないことをしようとしていますか?

4

1 に答える 1

2

e.preventDefault()またはbeforeunload ビットで試すことはできreturn falseますが、セキュリティ上の理由から、やりたいことはブラウザで技術的にサポートされていません。閉じられないウィンドウの意味をイメージしてください...

最善の方法は、組み込みの構文を使用することです。に文字列を返すと、beforeunload本当に終了するかどうかを尋ねるダイアログ ボックスがポップアップ表示され、その文字列が質問として表示され、「ページを離れる」または「ページにとどまる」というオプションが表示されます。

$(window).on('beforeunload', function(){
    return "Do you really want to leave this page?";
});

アップデート

これをさらに読んだ後、主要なブラウザーは戻り文字列の構文をサポートしているが、Firefox はサポートしていないことがわかりました。Firefox は単に文字列を「このページを終了してもよろしいですか?」という行に置き換えます。またはそのようなもの。

TLDR: 上記の戻り文字列構文はすべてのブラウザーで使用できますが、カスタム文は Firefox では表示されません :)

于 2014-06-15T21:02:38.223 に答える