window.location の使い方を知っています。問題は、(少なくとも FF では) 現在のページが履歴から消去されることです。たとえば、ページ A にいて、B に移動すると、window.location を使用して C に移動します。ページ C で [戻る] をクリックすると、B ではなく A に戻ります。
履歴から現在のページを消去せずに別のページに移動する他の方法はありますか?
編集: Firebug でコードを実行すると、これは起こりません。
これは、問題を示す非常に単純なページです(はい、コードが醜いことは知っています。実際のコードではありません)。
<html>
<head><script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"> </script>
<body>
<div class="foo"></div>
<a href="javascript:$('.foo').html('<scri'+'pt type="text/javascript">window.location = "c.html"</s'+'cript>');">b</a>
EDIT2: jQuery が問題でsetTimeout
あり、答えです。他の誰かがこの奇妙なエッジケースに遭遇した場合に備えて、以下に私のソリューションを追加しました。
EDIT3: この例は、テストしやすいように単純化されています。実際の場合、クリック ハンドラーは HTML を返す Ajax 呼び出しを行うため、window.location = anything と書くだけでは全体を単純化することはできません。コードはサーバーから取得され、HTML に埋め込まれます。