Автор Тема: history.back() & history.forward()  (Прочитано 5842 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Fury

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 64
  • +0/-0
  • 0
    • Просмотр профиля
history.back() & history.forward()
« : 27 Июня 2002, 16:31:46 »
Приделала на сайт кнопочки, реализующие соответственно back и forward по посещенным страницам.
Когда посетитель только пришел на страницу - все понятно:
history.length = 0 и обе кнопки (вперед,назад) неактивны.
А вот как проверить, есть ли страница, на которую еще можно вернуться "назад", и чтобы если такой нету (посетитель отщелкал все до начальной), то кнопку "Назад" делать неактивной??
И аналогично, проверить, есть ли страница, на которую можно по хистори пройти "вперед", чтобы при отсутствии таковой сделать неактивной кнопку "Вперед".
Рыжая бестия

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
history.back() & history.forward()
« Ответ #1 : 28 Июня 2002, 09:28:02 »
А зачем дублировать навигационные кнопки броузера?
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
history.back() & history.forward()
« Ответ #2 : 28 Июня 2002, 10:54:44 »
Пропиши на всех первых страницах эту ссылку пустой, тогда и вернуться не сможет.
TANSTAAFL

Оффлайн Fury

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 64
  • +0/-0
  • 0
    • Просмотр профиля
history.back() & history.forward()
« Ответ #3 : 01 Июля 2002, 11:07:57 »
Metaller , так надо (с)
Не будет у меня панели с навигационными кнопками.
Рыжая бестия

Оффлайн Fury

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 64
  • +0/-0
  • 0
    • Просмотр профиля
history.back() & history.forward()
« Ответ #4 : 01 Июля 2002, 11:12:25 »
Maniac - неправильное решение.
Сделать обе ссылки неактивными я могу, проверив на ноль history.length. А делать на первых страницах ссылку пустой, как ты сказал, - глупо. Потому как пользователь на первую страницу может попасть и блуждая по сайту. А тогда возможность возврата на предыдущую страницу должна быть.

ПС: если я неправильно поняла, что ты хотел сказать, расскажи еще раз, плз.
Рыжая бестия

Оффлайн KBA-KBA

  • Прыгает все время...
  • Постоялец
  • ***
  • Сообщений: 125
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cold.13pm.ru/
history.back() & history.forward()
« Ответ #5 : 02 Июля 2002, 02:26:43 »
а не проще ли проверять на какой странице находиться пользователь, и если он на начальной странице не делать ссылок???

Оффлайн Fury

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 64
  • +0/-0
  • 0
    • Просмотр профиля
history.back() & history.forward()
« Ответ #6 : 02 Июля 2002, 11:35:20 »
KBA-KBA - не проще.
Задача другая...
И потом, на первую страницу можно попасть в процессе брожения по сайту. И в таком случае вернуться назад будет куда, т.е. ссылка нужна.
Проблема в определении есть ли куда идти вперед, и есть ли куда идти назад.
Рыжая бестия

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
history.back() & history.forward()
« Ответ #7 : 02 Июля 2002, 12:55:08 »
IMHO, задача в том виде, в котором ты её поставила не решается вообще. Ну ты сама подумай: юзер набрал в строке адрес как-нить статьи или по ссылке пришел. Ты хочешь, чтобы скрипт сам за тебя определял, есть ли страницы уровнем выше и уровнем ниже? Но для этого каждый скрипт должен четко знать свое место в иерархии сайта. Т.е. если просто свалить страницы  у едину кучу - то ничего не выйдет.
Ты либо должна будешь в каждом файле прописывать его место в иерархии, либо именовать его соответсвующим образом - что, вообще говоря, по трудозатратам равно ручному прописыванию ссылки в каждой странице.
Далее... Если ты хочешь, чтобы твой скрипт был аналогичен действию кнопок вперед-назад браузера, с той лишь разницей, что действует он только на твоем сайте - то это
а) бесполезно, т.к. если юзер пришел по ссылке, то это еще не значит, что нет страниц выше по иерархии, тогда как кнопка "назад" будет неактивна.
б) ничего не выйдет, т.к. при помощи javascript ты не можешь узнать, где юзер прыгал по сети.

Если я тебя не так понял - конкретизируй.
TANSTAAFL

Оффлайн Fury

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 64
  • +0/-0
  • 0
    • Просмотр профиля
history.back() & history.forward()
« Ответ #8 : 02 Июля 2002, 13:09:55 »
Maniac
О! Вот я и хотела сказать, что аналогичен действию вперед-назад браузера.
Про пункт (а) при этом я тебе и говорила, что на первой _моей_ странице делать кнопку неактивной - бредово.
Зато не бредово проверять history.length - если ноль, то и вперед и назад неактивны, потому как только что пришли.

По поводу (б) - мне пофиг, где он прыгал по сети :) С помощью javascript\'а я могу "помочь" ему перейти назад - history.back :) Но вот есть ли куда перейти - это я и хотела узнать.
Нашла помимо length еще свойства current, next и previous которые должны возвращать адреса текущего, следующего и предыдущего документа, но у меня они ничего не возвращают :( И их описание не везде есть, что наталкивает на мысль, что такие свойства собственно говоря, отсутствуют.
Рыжая бестия

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
history.back() & history.forward()
« Ответ #9 : 02 Июля 2002, 13:43:54 »
Дык вот... Узнать откуда юзер пришел легко - анализируй HTTP_REFERER
Узнать куда он пойдет - нельзя.

Использовать current, next и previous можно только в signed scripts. Что это такое я не знаю, но подозреваю, что что-то нехорошее.
TANSTAAFL

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
history.back() & history.forward()
« Ответ #10 : 02 Июля 2002, 22:57:11 »
Да не отсутствуют они - только ими не разрешают пользоваться кому не попадя....
NN4/Mozilla - надо особое разрешение пользователя

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

Точнее не http-referer, а window.document.referer или без document
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн KBA-KBA

  • Прыгает все время...
  • Постоялец
  • ***
  • Сообщений: 125
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cold.13pm.ru/
history.back() & history.forward()
« Ответ #11 : 04 Июля 2002, 02:32:47 »
ИМХО моно через куки...
пиши весь путь хождения по сайту массивом в куки, и потом ходи по етому массиву не пользуясь стандарным history
Это неиболее приемлемый вариант... ИМХО

Оффлайн Fury

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 64
  • +0/-0
  • 0
    • Просмотр профиля
history.back() & history.forward()
« Ответ #12 : 04 Июля 2002, 11:30:12 »
Oak
:+))) Ну, если в php, то HTTP_REFERER :+))
Рыжая бестия

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28