0

history.pushstateメソッドを使用して履歴をブラウザーに追加し、ブラウザーで次のように履歴を追加しました。

       history.pushState("", "",myurl);

履歴がブラウザに正しく追加されました(ブラウザの履歴が正しいページをクリックすると読み込まれます)。

しかし、ブラウザの戻るボタンをクリックしても戻りません。

(つまり、ハッシュ変更機能を使用して、ページにさまざまなコンテンツを表示しています)。

実際には、戻るにはもう一度クリックする必要があります(つまり、履歴に追加された前のページに戻るには、戻るボタンを2回クリックします)。

戻るボタンを1回クリックするだけで戻るにはどうすればよいですか。

4

2 に答える 2

0

hashchange履歴には使用しないでください。これはフラグメントの変更のみです。を使用しpopstateます。

window.addEventListener('popstate', function () {

});

http://jsfiddle.net/ExplosionPIlls/NkEdg/

于 2013-03-04T05:58:32.380 に答える
0

次のように実用的な解決策を見つけました。

pushstate の代わりに replacestate を使用すると、問題が解決しました。

Pushstate は履歴を追加しますが、スタックの一番上を指しません。そのため、最初にロードされた履歴から同じページをクリックし、次のクリックで前のページがロードされます。

于 2013-03-04T07:39:21.310 に答える