| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Запомнить позицию скроллинга |
| Автор: Се ля ви 26.1.2005, 15:22 | ||
Задача - запомнить позицию скроллинга и вернуться к ней при обновлении страницы. Например, информация всё время меняется, но бегунок скроллера должен оставаться на месте при обновлении страницы.
Возможно, в парсеньи ошибка - но до неё даж не доходит - document.body.scrollTop возвращает 0 вне зависимости от положения скроллинга почему-то |
| Автор: Alx 26.1.2005, 17:53 | ||
| а что такое "[CDATA]"?? Добавлено @ 17:58 вот это:
нафик убери и всё зарулит Добавлено @ 17:59 ну и ещё в парсе проблема. |
| Автор: Alx 26.1.2005, 18:33 | ||
|
| Автор: Се ля ви 26.1.2005, 19:07 | ||||
Так, проблема частично решилась - для Mozilla и FireFox`а - там есть свойство объекта window под названием scrollY - показывает в пикселах позицию, на которую сейчас пользователь прокрутил окно браузера относительно документа - если это значение передать методу window.scrollTo(xPos, yPos) - и документ прокрутится куда надо.
Но в IE оно не поддерживается, к тому же, насколько я понял, манипуляция со скроллингом не входит ни в DOM, ни в ECMAScript - так что это самодеятельность разработчиков браузеров... |
| Автор: Се ля ви 26.1.2005, 19:25 |
| Офигеть... Значит, дело было в XHTML`е... |
| Автор: Sardar 26.1.2005, 21:55 |
| Се ля ви просто без DOCTYPE браузер работает в quirksmode, который совместимый с прошлыми поколениями браузеров. Читай http://www.quirksmode.org там же ответ на твой вопрос. |
| Автор: Се ля ви 27.1.2005, 13:44 | ||
Вобщем, если кому-то понадобится - можете копировать, что получилось. А получилось - следующее:
Надо это всё добавить в тело скрипта, удалить или закомментировать !DOCTYPE - и больше ничего. Довольно удобно смотреть всё время изменяемые документы так. Например, новости в реальном времяни - если их много на странице... Если очень хочется вписать DOCTYPE, http://forum.vingrad.ru/index.php?showtopic=40748&view=findpost&p=312602 будет работать, но только в Мазилле и Огненной Лисе, так что переходите на правильные браузеры |
| Автор: Alx 27.1.2005, 16:25 |
| а чем то что я написал-то не подходит? |
| Автор: Се ля ви 27.1.2005, 17:15 |
| Alx Не достаточно тщательно проработаны детали для использования некомпетентным человеком во всех возможных случаях. Например, что выдаст твой скриптик, если у страницы уже есть какие-то get-параметры запроса? У моего скрипта тоже несколько незначительных ограничений, впрочем - например, если пользователь задал событие window.onload или как ты в body это указал - мой скрипт с ним законфлектует и нужно будет разделять их специально. Просто привычка делать всё максимально универсально, что бы в похожих задачах можно было максимально не разбираясь использовать потом... |
| Автор: Alx 27.1.2005, 17:27 |
| Се ля ви это конечно хорошо, но вот насчет window.onload - никогда им не пользовался, поэтому не знаю - лозначает ли он просто успешное открытие документа или полную загрузку всех элементофф страницы? (как body.onload) |
| Автор: Се ля ви 27.1.2005, 17:59 | ||
Это синонимы с той разницей, что window.onload работает только в ЯваСцрипт 1.1 и выше, а в теге боди можно было прописать load и раньше... |
| Автор: Alx 27.1.2005, 18:45 |
| Се ля ви пасиб |
| Автор: Се ля ви 7.2.2005, 11:47 | ||||||
| Господа, новые решения и новые, т.е. хорошо забытые старые, проблемы. Потребовало от меня начальство другого, более "чистого" решения данной задачи - что бы не портить строку запроса новыми параметрами. После мозгового штурма, решено было воспользоваться куками. Не мудрствуя лукаво, нагло слизал скрипт с http://www.citforum.ru/internet/javascript/jscookie.shtml , приспособив под данную задачу:
Скрипт этот, к сожалению, не без изъяна. Дело в том, что в нём предполагается, что в начале документа стоит конструкция следующего вида:
Но штука в том, что, как показала практика, ревреш, заданный тегом при этом скрипте почему-то перестаёт фурычить. Есть, канешь, обход - вписать скрипт:
Есть ещё идеи, как с этим бороться? |
| Автор: Се ля ви 7.2.2005, 12:04 |
| Хм, небольшое уточнение - она не пашет после полного обновления страницы вручную по Ctrl-F5 и возможно, это очередной глюк IE... Вопрос снят, скрипт рабочий, можете брать и юзать, если нужно, хотя объяснение этой странности поиметь было бы неплохо... И при простом обновлении на F5 почему-то автообновление в IE теряется... В др. браузерах не тестил... |
| Автор: Се ля ви 8.2.2005, 11:25 | ||
Кароче, вот финальный, пакетный вариант. Если разместить это перед закрывающим тегом "</body>", то при постоянном обновлении страницы позиция просмотра будет оставаться на том же месте:
|