23

基本的に、フォームを含むページがあります。ユーザーがそのフォームを送信すると、Javascript 関数が呼び出され、ユーザーに新しいフォームが動的に表示されます。

この時点で、ユーザーがブラウザの戻るボタンをクリックして最初のフォームに戻れるようにしたいと考えています。これは可能ですか?


素早い回答ありがとうございます。しかし、pushState を機能させるのに問題があります。戻るボタンをクリックした後も、HTML に「2 番目のフォーム」が表示されます。

テストに使用したコードは次のとおりです。

<script>
function newPage(){
    history.pushState({state:1}, "State 1", "?state=1");
    document.getElementById('formBox').innerHTML="second form";
}
</script>


<input type="button" onclick="newPage();" value="forward" />
<div id='formBox'>first form</div>
4

2 に答える 2

29
var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");

ドキュメントへの関連リンク。

于 2012-05-10T20:15:24.280 に答える
15

次のように説明されているHistory.jsを使用して、HTML5 History/State API で同様の動作を実現しました。

すべての HTML5 ブラウザーに相互互換性のあるエクスペリエンスを提供します (それらはすべて、HTML5 History API の実装が少し異なり、異なる動作やバグを引き起こすことがあります。History.js はこれを修正して、HTML5 ブラウザー全体でエクスペリエンスが期待どおり/同じ/優れていることを保証します)。

例:

History.pushState({state:1}, "State 1", "?state=1");
于 2012-05-10T20:14:04.280 に答える