2012-01-23 9 views
46

ユーザーがページを読み込むと、すぐに別の場所にウィンドウをリダイレクトします。Javascriptでは、バック(履歴-1)を "クリア"するにはどうすればよいですか?

ユーザーがクリックすると、リダイレクトするページに戻るという問題があります。

前のページの履歴を「キャンセル」できますか?そのため、ユーザーがクリックすると、代わりに2ページに戻ります。

答えて

78

試してみてください。(置き換える使用した後

window.location.replace(url); 

)現在のページは、ユーザーがしません意味、セッション 履歴に保存されることはありません戻るボタンを使用して にナビゲートすることができます。誰もがこのページを越えてくると(むしろジャバスクリプトより)これを達成するためAngularJS方法を探しのために

+1

ありがとうございました。 – Neeraj

+0

これは読み込みを制御しているページで動作しますが、以前のブラウジング(別のサイト)をすべて消去したい場合はどうですか?私は怠け者であり、故意にまたは目的のために戻るボタンを使用して終了するWebアプリケーションを処理したくありません。 –

8

location.replaceを使用すると、現在のロケーションエントリ(リダイレクトページ)を新しいもの(ターゲット)に置き換えることができます。それは、JavaScript経由ではなく、メタタグまたは302例えばとリダイレクトを行うことが必要です。:

// In the redirecting page 
location.replace("path/to/target/page"); 

Live example |代わりにリダイレクトするようにwindow.location = url;を使用してのLive example source

3

、$ロケーションサービスのreplace()メソッド(documentation)を使用します。あなたのよう

使用$location.url('/newpath');または$location.path('/newpath');を通常、リダイレクションは角度で行います。そして、すぐ後に$location.replace();を追加してください。または、次のようなコマンドをチェーンすることができます。

$location.url('/newpath').replace(); 
関連する問題