前提・実現したいこと
Ajaxで画面書き換え後、ブラウザバックで書き換え前の画面を表示したい。
①【aaa.html】 → 【bbb.html】 という経路で 【bbb.html】を表示する
② Ajaxで【bbb.html】内の画面を書き換える
③ 書き換え後のページからブラウザバックを行う
④ 書き換え前の状態である【bbb.html】を表示したい
このとき、Ajaxで画面書き換え時にURLを変化させていないので【aaa.html】に戻ってしまいます。
該当のソースコード
html
1<div class="ajaxResultContainer"> 2 <p>Ajax遷移前の表示</p> 3 <div class="trigger" id="1">トリガー</div> 4</div>
jQuery
1$(function(){ 2 $('.trigger').click(function(){ 3 4 $id = $(this).attr('id'); 5 6 $.ajax({ 7 url: php/result.php, 8 post: post, 9 data: {'id': $id} 10 }) 11 .done(function(data) { 12 $('.ajaxResultContainer').html(data); 13 } 14 .fail(function() { 15 console.log('...'); 16 }) 17 18 }) 19})
試したこと
history に1つ履歴を挿入するため、jQueryのクリックイベント内に下記のプログラムを記述しました。
jQuery
1window.history.pushState(null, null, 'afterAjax');
これで【sample/bbb.html】→【sample/afterAjax】とURLを一噛みできるようになり、
ブラウザバックで【bbb.html】に戻ることはできるのですが、
表示はAjaxで書き換えた後のものになっています。
ここでリロードを行えば、Ajax書き換え前の状態になるのですが、
何か良い方法はありますでしょうか・・・。
補足情報(FW/ツールのバージョンなど)
Chromeでテストしていますが、最終的にはIE11でも同様の処理が行えるようにしたいです。
非常に基礎的な質問かもしれませんが、お力添えいただけますと幸いです。
よろしくお願いいたします。