Используя кнопку НАЗАД, чтобы вернуться к предыдущему состоянию страницы
Я пробую новую функциональность для моего веб-сайта. Я хочу сделать простую навигацию, скрывая / показывая <div>
элементы.
Например, когда пользователь нажимает кнопку "Подробнее" на каком-либо продукте, я хочу скрыть главное <div>
и показать <div>
содержащий детали для продукта.
Проблема в том, что для возврата к предыдущей "странице" мне нужно отменить все изменения стиля отображения / видимости, что нормально, если пользователь нажимает кнопку "закрыть" во вновь открывшейся <div>
, Но большинство пользователей нажимают кнопку НАЗАД.
Есть ли способ заставить кнопку BACK вернуться к предыдущему "состоянию" страницы, т. Е. Отменить изменения видимости / отображения?
Благодарю.
6 ответов
Чтобы ответить на вопрос о вашем названии (это то, что я искал)
Используя кнопку НАЗАД, чтобы вернуться к предыдущему состоянию страницы
и по ссылке из ответа @ reach4thelasers, вы должны установить таймер и снова и снова проверять текущий якорь:
//On load page, init the timer which check if the there are anchor changes each 300 ms
$().ready(function(){
setInterval("checkAnchor()", 300);
});
потому что нет обратного вызова Javascript, вызванного, когда BACK
кнопка нажата и только якорь меняется...
-
Кстати, шаблон, о котором вы говорите, теперь называется одностраничным интерфейсом!
Да. То, что вы ищете, называется историей браузера AJAX.
Существует несколько открытых реализаций, таких как RSH, а также плагины / модули для таких сред, как jQuery и YUI.
Вам нужно добавить привязку к URL при каждом изменении
www.site.com/page.html#anchor1
Это позволит браузеру поддерживать страницы в своей истории. Я реализовал его на своем текущем сайте после изучения этого учебника, который отлично работает и дает вам хорошее понимание того, что вам нужно делать:
http://yensdesign.com/2008/11/creating-ajax-websites-based-on-anchor-navigation/
Ваш пример в комментариях не будет работать, потому что он работает так:
Страница загружена
Страница изменена, добавьте привязку к URL (кнопка "Назад" возвращает вас назад к 1)
Страница изменена, привязка изменена (кнопка возврата возвращает 2)
Страница изменена, привязка изменена (кнопка "Назад" возвращает вас к 3)
.... И так далее, и так далее..
Взгляните на этот учебник, основанный на ItsNat веб-инфраструктуре Java, ориентированной на веб-сайты с одностраничным интерфейсом
Если это так, то с точки зрения UX это звучит довольно злобно. Почему бы вам не создать кнопку "Назад" в своем приложении и использовать дизайн, чтобы сделать для пользователя очевидным, что им следует использовать кнопку "Назад" вашего приложения вместо браузера.
Под "использованием дизайна" я подразумеваю, чтобы ваше приложение выглядело как самодостаточный пользовательский интерфейс внутри браузера, чтобы пользователь оставался на вашей странице, а не смотрел на хром браузера, когда они ищут элементы управления для взаимодействия с ваше приложение.
Вы можете сделать это с помощью якорей, как это делается во многих приложениях flash или других приложениях, которые не переходят от страницы к странице. Facebook использует эту технику довольно свободно. Каждый раз, когда пользователь нажимает на ссылку, которая должна идти в его истории, меняйте привязку на странице.
Скажем так, ссылка на мою домашнюю страницу:
http://www.mysite.com/#homepage
Для ссылки, которая работает с вашим волшебством JavaScript, сделайте это:
<a href="#otherpage" onclick="javasriptMagic()">My Other Page</a>
Это отправит пользователя на http://www.mysite.com/, где нажатие кнопки "Назад" вернет вас на http://www.mysite.com/. Тогда вам просто нужно прочитать якоря с
window.location.hash
чтобы выяснить, на какой странице вы должны быть.