Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Fury от 27 Июня 2002, 16:31:46

Название: history.back() & history.forward()
Отправлено: Fury от 27 Июня 2002, 16:31:46
Приделала на сайт кнопочки, реализующие соответственно back и forward по посещенным страницам.
Когда посетитель только пришел на страницу - все понятно:
history.length = 0 и обе кнопки (вперед,назад) неактивны.
А вот как проверить, есть ли страница, на которую еще можно вернуться "назад", и чтобы если такой нету (посетитель отщелкал все до начальной), то кнопку "Назад" делать неактивной??
И аналогично, проверить, есть ли страница, на которую можно по хистори пройти "вперед", чтобы при отсутствии таковой сделать неактивной кнопку "Вперед".
Название: history.back() & history.forward()
Отправлено: Metaller от 28 Июня 2002, 09:28:02
А зачем дублировать навигационные кнопки броузера?
Название: history.back() & history.forward()
Отправлено: Maniac от 28 Июня 2002, 10:54:44
Пропиши на всех первых страницах эту ссылку пустой, тогда и вернуться не сможет.
Название: history.back() & history.forward()
Отправлено: Fury от 01 Июля 2002, 11:07:57
Metaller , так надо (с)
Не будет у меня панели с навигационными кнопками.
Название: history.back() & history.forward()
Отправлено: Fury от 01 Июля 2002, 11:12:25
Maniac - неправильное решение.
Сделать обе ссылки неактивными я могу, проверив на ноль history.length. А делать на первых страницах ссылку пустой, как ты сказал, - глупо. Потому как пользователь на первую страницу может попасть и блуждая по сайту. А тогда возможность возврата на предыдущую страницу должна быть.

ПС: если я неправильно поняла, что ты хотел сказать, расскажи еще раз, плз.
Название: history.back() & history.forward()
Отправлено: KBA-KBA от 02 Июля 2002, 02:26:43
а не проще ли проверять на какой странице находиться пользователь, и если он на начальной странице не делать ссылок???
Название: history.back() & history.forward()
Отправлено: Fury от 02 Июля 2002, 11:35:20
KBA-KBA - не проще.
Задача другая...
И потом, на первую страницу можно попасть в процессе брожения по сайту. И в таком случае вернуться назад будет куда, т.е. ссылка нужна.
Проблема в определении есть ли куда идти вперед, и есть ли куда идти назад.
Название: history.back() & history.forward()
Отправлено: Maniac от 02 Июля 2002, 12:55:08
IMHO, задача в том виде, в котором ты её поставила не решается вообще. Ну ты сама подумай: юзер набрал в строке адрес как-нить статьи или по ссылке пришел. Ты хочешь, чтобы скрипт сам за тебя определял, есть ли страницы уровнем выше и уровнем ниже? Но для этого каждый скрипт должен четко знать свое место в иерархии сайта. Т.е. если просто свалить страницы  у едину кучу - то ничего не выйдет.
Ты либо должна будешь в каждом файле прописывать его место в иерархии, либо именовать его соответсвующим образом - что, вообще говоря, по трудозатратам равно ручному прописыванию ссылки в каждой странице.
Далее... Если ты хочешь, чтобы твой скрипт был аналогичен действию кнопок вперед-назад браузера, с той лишь разницей, что действует он только на твоем сайте - то это
а) бесполезно, т.к. если юзер пришел по ссылке, то это еще не значит, что нет страниц выше по иерархии, тогда как кнопка "назад" будет неактивна.
б) ничего не выйдет, т.к. при помощи javascript ты не можешь узнать, где юзер прыгал по сети.

Если я тебя не так понял - конкретизируй.
Название: history.back() & history.forward()
Отправлено: Fury от 02 Июля 2002, 13:09:55
Maniac
О! Вот я и хотела сказать, что аналогичен действию вперед-назад браузера.
Про пункт (а) при этом я тебе и говорила, что на первой _моей_ странице делать кнопку неактивной - бредово.
Зато не бредово проверять history.length - если ноль, то и вперед и назад неактивны, потому как только что пришли.

По поводу (б) - мне пофиг, где он прыгал по сети :) С помощью javascript\'а я могу "помочь" ему перейти назад - history.back :) Но вот есть ли куда перейти - это я и хотела узнать.
Нашла помимо length еще свойства current, next и previous которые должны возвращать адреса текущего, следующего и предыдущего документа, но у меня они ничего не возвращают :( И их описание не везде есть, что наталкивает на мысль, что такие свойства собственно говоря, отсутствуют.
Название: history.back() & history.forward()
Отправлено: Maniac от 02 Июля 2002, 13:43:54
Дык вот... Узнать откуда юзер пришел легко - анализируй HTTP_REFERER
Узнать куда он пойдет - нельзя.

Использовать current, next и previous можно только в signed scripts. Что это такое я не знаю, но подозреваю, что что-то нехорошее.
Название: history.back() & history.forward()
Отправлено: Oak от 02 Июля 2002, 22:57:11
Да не отсутствуют они - только ими не разрешают пользоваться кому не попадя....
NN4/Mozilla - надо особое разрешение пользователя

Mozilla - ессно тот скрипт, который интерфейсом управляет, имеет доступ к этому history в полном объемe
;)

Точнее не http-referer, а window.document.referer или без document
Название: history.back() & history.forward()
Отправлено: KBA-KBA от 04 Июля 2002, 02:32:47
ИМХО моно через куки...
пиши весь путь хождения по сайту массивом в куки, и потом ходи по етому массиву не пользуясь стандарным history
Это неиболее приемлемый вариант... ИМХО
Название: history.back() & history.forward()
Отправлено: Fury от 04 Июля 2002, 11:30:12
Oak
:+))) Ну, если в php, то HTTP_REFERER :+))