1

テスト シナリオでは、pageA と pageB の 2 つのページがあります。

最初のステップでは、ボタンがwindow.history.pushState呼び出しをトリガーし、アドレスバーに pageB のアドレスが表示されます。

2 番目のステップでは、ブラウザのアドレス バーを使用して pageB をリクエストします。ブラウザーは pageB のコンテンツをレンダリングします。アドレスバーには pageB のアドレスが表示されます。

最後のステップでは、ブラウザの戻るボタンを使用してページ A に戻ります。アドレスバーには pageA のアドレスが表示されます。ただし、ブラウザには、ページ A のコンテンツが表示されると予想していたページ B のコンテンツが表示されます。

私は何か間違ったことをしていることを知っています。私でさえ、この振る舞いを説明する方法がわかりません。何か提案はありますか?

ここでは、jsFiddle でデモを見つけることができます: http://jsfiddle.net/HqECT/3/show/

実装が表示される場合があります: http://jsfiddle.net/HqECT/3/

注: テストは Chrome v30.0.1599.101 で実行されます

4

1 に答える 1

2

popstate イベントをリッスンする必要があります。イベント オブジェクトには、stateを呼び出したときに履歴に入れたデータを含むプロパティがありますpushState。適切なデータを配置すると、それを使用してページを古い URL の状態に復元できます。

于 2013-10-18T13:42:31.837 に答える