Отключить навигацию по истории
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Отключить навигацию по истории - 2009-02-10 03:13:31.563333
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
При навигации по сайту текущая страница записывается на сервере, соответственно, если пользователь жмёт в броузере кнопку "назад", сервер об этом НЕ узнаёт. Нужно запретить пользователю передвигаться по хистори. Поскольку хистори средвствами Джаваскрипта удалить нельзя (из-за политики безопасности), то единственное, что приходит в голову - не записывать её вообще. Частное решение для ссылок - заменять через top.location.replace текущую страницу и останавливать распространение события (пример ниже). Увы, не работает для форм. replace выполняет GET запрос, даже если сабмитить через form.submit(), броузер запоминает страницу, а асинхронный запрос через Ajax требует слишком много преобразований в проекте. Есть идеи?
<head>
<title>test</title>
<script type="text/javascript">
function doLink(e) {
var a = (document.all) ? e.srcElement : e.target;
if (a.nodeType == 3) a = a.parentNode;
if (a.getAttribute('href')) {
top.location.replace(a.getAttribute('href'));
return false;
}
return true;
}
</script>
</head>
<body onclick="return doLink(event);">
<a href="http://google.com">Test</a>
</body>
</html>
|
|
|
RE: Отключить навигацию по истории - 2009-02-10 09:29:46.273333
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
Отправлять заголовки, указывающие браузеру не кэшировать документ. Не уверен, что это поможет в случае с оперой, но надо пробовать
|
|
|
RE: Отключить навигацию по истории - 2009-02-10 10:24:33.950000
|
|
|
kolPeeX
Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
|
history.forward() на каждой странице. Тогда на самой последней странице эта функция ничего не сделает, а на других (при нажатии "Назад") переведет вперед.
|
|
|
RE: Отключить навигацию по истории - 2009-02-10 14:31:04.876666
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
quote:
ORIGINAL: oRb Отправлять заголовки, указывающие браузеру не кэшировать документ. Не уверен, что это поможет в случае с оперой, но надо пробовать Для Firefox'а тоже ен помогает. Может в кэш страницы и не записываются, но хистори точно сохраняется. quote:
ORIGINAL: kolPeeX history.forward() на каждой странице. Тогда на самой последней странице эта функция ничего не сделает, а на других (при нажатии "Назад") переведет вперед. Для IE прекрасно, но FF опять же подводит: при нажатии кнопки "Назад" событие onload не срабатывает. Можно, конечно, поставить на mouseover, но пока юзер не переведёт мышь на тело страницы, он будет видеть страницу из хистори.
|
|
|
RE: Отключить навигацию по истории - 2009-02-10 18:29:24.170000
|
|
|
kolPeeX
Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
|
Попробуй через рекурсивную setTimeout (ну или как эта задержка). По идее, таймер сохранится, если пользователь перейдет на страницу нажатием кнопки "Назад".
|
|
|
RE: Отключить навигацию по истории - 2009-02-10 22:44:29.326666
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
quote:
ORIGINAL: kolPeeX Попробуй через рекурсивную setTimeout (ну или как эта задержка). По идее, таймер сохранится, если пользователь перейдет на страницу нажатием кнопки "Назад". Пробовал уже, страница загружается - все таймеры сбрасываются.
|
|
|
RE: Отключить навигацию по истории - 2009-02-11 01:57:44.336666
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
А, собственно, что вызывается, когда пользователь жмёт "Назад"? Знаю, что onunload вызовется, но если даже вернуть в нём false, распространение события не остановитс, а значит, есть ещё какая-то функция, которая уже вызывает onunload. Кто-нибудь в курсе?
|
|
|
RE: Отключить навигацию по истории - 2009-02-11 03:14:04.486666
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
блин, читаю, читаю, а рефер проверять и если параметр страницы рефера на 1 больше - тупо перенаправлять, на PHP, header? явускрипт и отключить можно, так что даже если и придумаешь - не универсально
|
|
|
RE: Отключить навигацию по истории - 2009-02-11 04:21:24.990000
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
quote:
ORIGINAL: Pashkela блин, читаю, читаю, а рефер проверять и если параметр страницы рефера на 1 больше - тупо перенаправлять, на PHP, header? Что такое рефер? Это не PHP, проект на Java.
|
|
|
RE: Отключить навигацию по истории - 2009-02-11 04:52:55.566666
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
ну сделай на javascript referrer - http-заголовок, содержащий информацию, откуда пришел посетитель. Если пришел оттуда, откуда не надо - перенаправить взад. И всё. Просто как три копейки. По ссылке конкретные примеры есть. http://www.netmechanic.com/news/vol4/javascript_no14.htm
|
|
|
RE: Отключить навигацию по истории - 2009-02-11 11:18:06.256666
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
quote:
ORIGINAL: Pashkela По ссылке конкретные примеры есть. http://www.netmechanic.com/news/vol4/javascript_no14.htm File not found. quote:
referrer - http-заголовок, содержащий информацию, откуда пришел посетитель. Если пришел оттуда, откуда не надо - перенаправить взад. И всё. Просто как три копейки. Для того, чтобы сделать хоть что-то на Джаваскрипте, нужно, чтобы он вызывался. Когда переходишь по истории назад в FF, не вызывается ничего. Вернее onload не вызывается. Вот выше товарищ уже подсказал history.forward(), чтобы кидать человека на последнюю страницу - ты это имеешь ввиду? Ну так в том то и дело, что не хочет скрипт вызываться - страница из истории тупо перерисовывается БЕЗ запуска скриптов.
|
|
|
RE: Отключить навигацию по истории - 2009-02-11 14:49:49.040000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
нет, не это. А слово script в ссылке набираем ручками - фильтр
|
|
|
RE: Отключить навигацию по истории - 2009-02-11 15:14:19.233333
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
Pashkela, страница берется из кеша. К серверу браузер даже не обращается.
|
|
|
|
|