3

ユーザーがブラウザの戻るボタンをクリックすると、プロンプトが表示されて確認を求められます。ユーザーが [OK] をクリックすると、に移動する必要がありxx.htmlます。ユーザーが「キャンセル」をクリックすると、ナビゲーションが妨げられます。これどうやってするの?

注: 既にこのonbeforeunload方法を試しましたが、すべてのナビゲーション アクションで機能しています。たとえば、ページ上のリンクをクリックすると、このイベントも発生し、ユーザーにメッセージが表示されます。

4

4 に答える 4

6

できません。あなたができる最善のことはonbeforeunload、通常のリンクをクリックしたときにそのイベントを使用して削除することです:

<script type="text/javascript">
window.onbeforeunload = function() {return "Are you sure?"}
</script>

<a href="somewhere.html" onclick="window.onbeforeunload = null;">Leave</a>
于 2010-11-15T13:04:08.490 に答える
1

onbeforeunloadイベント内のナビゲーション アクションを区別する方法はありません。各リンクのハンドラーまたはフォームのハンドラーを削除することにより、ページ上のすべてのリンク/フォームに対して無効にすることができます。ただし、ユーザーが戻る、進む、ブックマークなどをクリックしたのか、アドレス バーに新しいアドレスを入力したのかはまだわかりません。window.onbeforeunloadonclickonsubmit

于 2010-11-15T13:02:50.503 に答える
-2

あなたはこれを行うことができます

$(window).bind("beforeunload", function() {
    return "Are you Sure you want to leave this page?"; // Return whatever message you want
});​

また、xx.html が履歴のページである場合は、何も追加する必要はありません。メッセージを返すだけで、自動的にボタンが配置されます。

編集: http://jsfiddle.net/Lxq93/の質問に答えないと仮定する前に、フィドルを参照してください。

編集:私の知る限り、戻るボタンにのみメッセージを表示する決定的な方法はありません。また、戻るボタンでピックアップする唯一の方法を見て、見たことが $(window).bind("beforeunload",function(){return;})あり $(window).onbeforeunload = function(){return;}ます。現在のページから離れたその他のナビゲーション。これは現在、2014 年に提供できる最良の回答です。

編集:

上記はすべてのアンロード イベント用です

http://jsfiddle.net/Lhw2x/85/

誰かがすべての主要なブラウザに、単にアンロードイベントではなく、各アンロードイベントに特定の名前を使用させることを決定するまで、JavaScriptを介してそれを行うことはできません。

したがって、答えはノーです。別のページに移動しようとしたときに確認で [OK] をクリックしたときに、特定のページへのナビゲーションを強制することはできません。

また、戻るボタンには特定のイベント名がありません。そのイベントはすべてアンロード イベントのいくつかの異なるイベントと共有されるため、javascript を使用して戻るボタンを特定の機能にすることはできません。

于 2014-05-21T17:36:09.850 に答える