Ajax経由でページを読み込んでいます。ユーザーがリンクをクリックすると、ページはAJAXで正常に読み込まれますが、ユーザーが[戻る]ボタンをクリックすると、ページは最初のページを再読み込みします。シナリオはこれです。
- 最初のページをロードする(index.php)
- ユーザーがリンクをクリックします
- ページが正常に読み込まれます
- [戻る]ボタンをクリックします
- 現在、最初のページが2回表示されています。
これがマークアップです。
$(function() {
// Prepare
var History = window.History; // Note: We are using a capital H instead of a lower h
if (!History.enabled) {
// History.js is disabled for this browser.
// This is because we can optionally choose to support HTML4 browsers or not.
return false;
}
// Bind to StateChange Event
History.Adapter.bind(window, 'statechange', function() { // Note: We are using statechange instead of popstate
var State = History.getState();
$('#content').load(State.url);
});
$('a').click(function(evt) {
evt.preventDefault();
History.pushState(null, $(this).text(), $(this).attr('href'));
alert(State.url)
});
});
これはマークアップです
<div id="wrap">
<a href="page1.html">Page 1</a>
</div>
<div id="content">
<p>Content within this box is replaced with content from
supporting pages using javascript and AJAX.</p>
</div>
それでも私の質問やシナリオがわからない場合
これが完全なシナリオです。最初のページ
ユーザーがリンクをクリックすると、選択したページが正常に読み込まれます
戻るボタンをクリックすると、最初のページが2倍になります
ご覧のとおり、「Page1」リンクは2倍になっています。これはブラウザの問題ですか?または、履歴APIの私の理解は、何かが欠けているか、欠けていますか?これに対する可能な解決策は何ですか?