Как стать автором
Обновить

Комментарии 25

НЛО прилетело и опубликовало эту надпись здесь
К сожалению, получаем http-URL, который редиректится на javascript-URL и заменяет страницу пустышкой с домена tinyurl. Если я правильно понимаю, это никак не поможет(
НЛО прилетело и опубликовало эту надпись здесь
>> Бывают случаи, когда в браузере приходится читать большой текст в несколько приёмов. Это может быть роман, статья или техническое руководство.

«Opera» из тэгов уберите — она и без велосипедов сохраняет положение всех открытых страниц при включённом режиме «Продолжитьс места разъединения», за одним исключением:

>> Хорошо, когда документ разделён на главы и снабжён удобной навигацией

плохо, т.к. при наличии fragment identifier в ссылке сохранение положения прокрутки документа не срабатывает в Опере.

То есть, если Вы читали десять документов, каждый из них закрыли, а потом захотите вернуться к местам, до которых Вы дочитали, Opera сможет автоматически восстановить статус прокрутки для каждого документа? Простите, у меня не получилось. Описанный Вами способ работает только в том случае, если браузер закрывается при открытых документах — только они и будут восстановлены пре следующем запуске.
НЛО прилетело и опубликовало эту надпись здесь
Да, я написал об этом минусе. Но, кажется, пользователи не часто меняют размер окна. По крайней мере для постоянных нужд, не для экспериментов.

А закрывать зачем… Мало ли. Зачем вообще закрывают программы…
Храните позицию в процентах от доступной высоты. Тогда при изменении размера окна вы найдете ту же самую позицию, так как доступная высота тоже изменится.
Но это существенно усложнит и увеличит код: во-первых, у запроса доступной высоты свои проблемы с кроссбраузерностью, во-вторых это лишняя логика и пересчёты. Впрочем, для тех, кто действительно так уж часто меняет размеры окна для одного и того же документа, это, наверное, выход.
какие проблемы? вы используете scrollTop, точно также доступен scrollHeight который определяет размер скролбара.
Ну, вот здесь говорится, что scrollHeight не корректно обрабатывается в IE:

www.quirksmode.org/dom/w3c_cssom.html#t36
Ой, и в Opera тоже.
В Оперу я сообщал об ошибке этой год или два назад (еще до 10й версии), после выхода 10й, кажется напоминал, про косяк, но они не реагируют и забили болт. И не только на эту. Короче scrollHeight на ширину скролбара больше реального значения. Так что на эти 17-20 пикселов можно забить — будет небольшая погрешность.
«When the element has no scrollbars IE makes the scrollHeight equal to...»
случай, когда скролбара нет, нам не интересен совсем, верно?
Верно) Будем считать, что у разработчиков теперь есть дополнительный вариант. Сейчас добавлю ссылку на этот тред в шапку поста.
Откройте любое количество табов, прокрутите все в нужное положение, закройте Оперу. Запустите Оперу снова — все прокрутится в нужную позицию.
Часто пользуюсь этой возможностью, когда читаю электронные книги в txt или html.

Точно так же, сохраняется положение прокрутки, если открывать закрытые табы из корзины.

Исключение: ссылки вида
habrahabr.ru/blogs/browsers/94598/#comments

Такие страницы прокручивает не в положение, в котором страница была закрыта, а на указанный в ссылке элемент.
Ну, всё же и для Оперы можно найти применение. Не всегда ведь удобно держать все страницы открытыми. Я, например, параллельно могу читать несколько текстов, некоторые — понемногу каждый день. Сначала открываю все, получается своеобразный план на день. По ходу прочтения нормы закрываю вкладки.
>> Я, например, параллельно могу читать несколько текстов,

Аналогично.

>> Не всегда ведь удобно держать все страницы открытыми.

Можно сохранять сессии с нужными группами документов.
*сессии = сеансы в русском интерфейсе (проверил только что).

Перепроверил — сохраняется положение прокрутки в них.
Само собой, не будет работать если закрыть страницу а потом снова открыть или из закладок, или набрав заново адрес.
Но если если будет работать — время от времени будут неудобства. Пример: главная страница любого новостного сайта или любого другого часто обновляемого — скорее всего перед закрытием она будет прокручена или до середины или до конца. При следующем посещении сайта, желая ознакомиться с новым контентом придётся вручную переходить в начало страницы (нажимать home или скроллить), что не есть удобно.
Да, конечно, это не удобно. Но я ведь и не ратую за принудительное сохранение позиций. А сохранять сессии — мне кажется, это сложнее. Впрочем, это всё дело вкуса и личных предпочтений. Наверняка найдутся те, кому удобнее то или другое.
чуть изменилась ширина браузера и всё поехало…
Мне кажется, это чисто теоретический минус. Например я постоянно работаю с распахнутым на весь экран браузером. Если для каких-то временных нужд и приходится изменять окно, всё равно ведь большую часть времени работаешь в привычном режиме.
у меня таблетка, так что я экран иногда поворачиваю на бок
Ну, по крайней мере один и тот же документ большинство людей будут читать одинаково. Я ведь не говорю, что это идеальное решение. Но я пока другого не нашёл…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации