Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Редактирование и клавиша Back |
Автор: NIMahno 24.10.2003, 12:23 |
Мы тут пишем редактор некоей структуры. При кликах на определенные места структура меняет свой вид (что в свою очередь видоизменяет класс, приаттаченный к старнице через параметр). Данные передаются через HttpServletRequest, потом идет редирект на ту же страницу с выводом обновленных данных. И вот возникает очень неприятный момент. Пользователь может нажать Back - и страница вернется к предыдущему виду структуры, НЕ СООТВЕТСТВУЮЩЕМУ текущему значению данных в классе. И при нажатии на клавишу Save запишутся не те данные, которые видит пользователь... И вот тут - еще раз вопрос: как заблокировать запись навигации в хистори при обновлениях страницы редактирования этой нашей структуры (чтобы возврат шел не к предыдущему виду структуры, а, например, к той странице, которая и запустила редактор). Предложения типа "... а почему вы не храните данные прямо в странице..." не подходят ввиду сложности структуры данных... |
Автор: Z_P 25.10.2003, 10:22 |
Я так понял, ты не хочешь чтобы пользователь не нажимал baсk на броузере? Отключить его не получится из основного окна, можно сделать чтобы открывалось поп-окно, и в нем уже легко отключить эту панель, и не только.. |
Автор: DENNN 25.10.2003, 13:10 | ||
проблема, как я понял не в панели, а в том, чтоб отрубить ту же функцию по кнопке BackSpace. Мне на ум приходит только один вариант: использовать PHP и его SESSION, тогда можно добиться, чтоб упользователя в алресе всегда к примеру было http://www.mydomensuxx.ru/index.php. При таком раскладе даже если сделать history.back() броузеру вернется та же страница. |
Автор: Гость_DeathStorm 5.11.2003, 09:52 |
а может скриптом отрубить типа if(event.keyCode==backspace){return false} |
Автор: DENNN 5.11.2003, 19:33 | ||
А если на каком-то из броузеров не заработает, тогда кто виноват будет? |
Автор: Nobody 5.11.2003, 20:20 |
DENNN Если ты отдал пользователю какой-то контент, то ты уже НИКАК не сможешь отобрать его. Он может взять и сохранить страницу. Или загрузить ее через lynx ;) Какой там Яваскрипт? |
Автор: meral 7.7.2004, 13:29 |
есть очень простое решение - совсем простое ![]() ![]() ![]() ![]() надо просто в каждую страницу включать либо 1) время генерации 2) номер обращения к класу в сессии и то же значение сохранять в класе тогда при несовпадении данных в класе и странице можно а) вывести алерт б) переделать страницу используя DOM с) на ваш выбор очевидно что этого должно хватить ps я лично использую в таких случаях параметр sequence который есть текущим значением псевдослучайной последовательности с интервалом 1-1000 000 000 это одновременно решает и проблему авторизации ![]() |