Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Условие для отображения кнопки навигации по просмотренным страницам (https://javascript.ru/forum/events/59129-uslovie-dlya-otobrazheniya-knopki-navigacii-po-prosmotrennym-stranicam.html)

solomon2 29.10.2015 00:17

Условие для отображения кнопки навигации по просмотренным страницам
 
Вывожу кнопки "Назад" и "Вперед" для удобной навигации по сайту.

Кнопки должны отображаться только если есть соответствующая история переходов. С кнопкой "Назад" проблем нет, просто проверяю что длинна истории (history.length) больше 1 и тогда вывожу кнопку.

Непонятно как написать условие для отображения кнопки "Вперед", не пойму за что зацепиться. Подскажите, пожалуйста. 6 часов мучений и гугл ничего не дали.

krasovsky 29.10.2015 07:18

Определить/хранить текущий элемент истории.
Допустим это массив, в котором хранится 6 переходов по истории. length у тебя есть. Допустим мы сейчас нажали кнопку назад, и находимся на currentPosition=5 значит if(currentPosition<history.length) {...выводим кнопку...}

solomon2 29.10.2015 14:05

Цитата:

Сообщение от krasovsky (Сообщение 393519)
Определить/хранить текущий элемент истории.
Допустим это массив, в котором хранится 6 переходов по истории. length у тебя есть. Допустим мы сейчас нажали кнопку назад, и находимся на currentPosition=5 значит if(currentPosition<history.length) {...выводим кнопку...}

А как определять currentPosition ? Пользователь может бродить по сайту не только нажимая кнопки навигации, но и тыча по ссылкам и кнопкам навигации в браузере.

solomon2 29.10.2015 14:11

Вот например сохранилось в истории:

["/article5", "/article8", "/article23", "/article8"]

Смотрю текущий урл. Он равен "/article8". Как определить какая сейчас позиция - 1 или 3 ? На 1-ю пользователь попал по ссылке на странице, а на 3-ю кликом на кнопку назад в браузере.

krasovsky 30.10.2015 11:43

Ну, откель я знаю какая у тебя там реализация самого скрипта, если плагин какой то - смотри его api
Должно быть какое то событие или коллбек, который вызывается при смене позиции


Часовой пояс GMT +3, время: 08:13.