У меня есть страница поиска, на которой каждый результат поиска добавляется на страницу с помощью AJAX. Таким образом, я могу позволить пользователям искать, например, Led Zeppelin, затем выполнить другой поиск Metallica, но добавить его в тот же список результатов, что и предыдущий поиск.
Моя проблема в том, что пользователь нажимает ссылку на запись, затем обращается к кнопке "Назад" , возвращается к результату поиска.
FireFox (7) сохраняет страницу так, как она выглядела, когда я ее оставил, отображая полный результат.
IE (7,8) и Chrome (15), с другой стороны, покажет страницу, прежде чем добавлять какие-либо результаты поиска в AJAX, как если бы она не помните, что я добавил к нему данные.
Ниже приведен код, который я использую. Я попытался добавить location.hash = "test";
, но он не работал.
// Add search result
$("#searchForm").submit(function (event) {
//location.hash = "test";
event.preventDefault();
$.post($(this).attr('action'), $(this).serialize(),
function (data) {
$("tbody").append(data);
});
});
Мне не нужна кнопка "Назад" , которая отслеживает изменения на странице поиска, например, перебирает каждый результат поиска по мере его добавления. Я просто хочу, чтобы браузер помнил последний результат поиска, когда я нажимаю кнопку "Назад" .
решаемые
Переход на document.location.hash = "latest search"
ничего не изменил. Я должен был использовать localStorage
, как указал Амир.
Это относится к остальной части кода jQuery:
// Replace the search result table on load.
if (('localStorage' in window) && window['localStorage'] !== null) {
if ('myTable' in localStorage && window.location.hash) {
$("#myTable").html(localStorage.getItem('myTable'));
}
}
// Save the search result table when leaving the page.
$(window).unload(function () {
if (('localStorage' in window) && window['localStorage'] !== null) {
var form = $("#myTable").html();
localStorage.setItem('myTable', form);
}
});