Сделал простенький примерчик для WinMobile
Загружаю хтмл с парой ссылок, потом несколькими строками текста
(достаточно, чтобы не поместилось на один экран),
потом ставлю якорь <a name="anch"></a>
Поигрался еще немного.
На данный момент для меня ситуация выглядит так:
Если я загружаю в HTMLayout хтмлку, в которой в начале документа
стоит ссылка , потом много текста (достаточно, чтобы появился
вертикальный скроллер), потом ссылка в конце документа, то когда я
ищу элемент dom для нижней ссылки по root.find_first и на найденном
элементе делаю anchor_el.scroll_to_view, то скролл выполняется
на верхнюю ссылку.
Если же выполнить скролл два раза подряд либо полностью повторить поиск,
то тогда скроллится на нижнюю ссылку, как и должно быть. Попробовал то же
самое с парой других тегов — такого не происходит. Только с <a>.
Вопрос — у всех так?
И заодно возник еще один вопрос — когда загружаю хтмл с ссылкой или несколькими
ссылками, фокус устанавливается на первую ссылку. Если она в конце документа, то
документ скроллится на нее. Я чего-то не так делаю или так и должно быть? И как от
этого правильно избавиться?
Здравствуйте, mad777, Вы писали:
M>И заодно возник еще один вопрос — когда загружаю хтмл с ссылкой или несколькими M>ссылками, фокус устанавливается на первую ссылку. Если она в конце документа, то M>документ скроллится на нее. Я чего-то не так делаю или так и должно быть? И как от M>этого правильно избавиться?
В документе нет других элементов на которые можно установить фокус?
Как я понимаю логику работу, HTMLayout после загрузки документа ищет элемент с меньшим значением атрибута tabindex и ставит фокус на него (если индексы не проставляются пользователем, то библиотека расставляет их самостоятельно в порядке в котором элементы встречаются в DOM дереве). Если элемент находится далеко внизу, то соответственно скроллится документ.
Я в похожей ситуации руками устанавливал фокус на body (если память не изменяет).
Здравствуйте, ShaggyOwl, Вы писали:
SO>В документе нет других элементов на которые можно установить фокус? SO>Как я понимаю логику работу, HTMLayout после загрузки документа ищет элемент с меньшим значением атрибута tabindex и ставит фокус на него (если индексы не проставляются пользователем, то библиотека расставляет их самостоятельно в порядке в котором элементы встречаются в DOM дереве). Если элемент находится далеко внизу, то соответственно скроллится документ.
SO>Я в похожей ситуации руками устанавливал фокус на body (если память не изменяет).
Попробовал поставить фокус на body. Сделать это получается только если повесить на него свой behavior. Собственно, при этом проблема вообще снимается, фокус сразу устанавливается на body. Но на мой взгяд довольно странно производить такие действия, чтобы получить картину, ожидаемую по умолчанию — загрузился документ, остался открытым на начале, если не было scroll_to_view и т.п.
Здравствуйте, mad777, Вы писали:
M>Попробовал поставить фокус на body. Сделать это получается только если повесить на него свой behavior. Собственно, при этом проблема вообще снимается, фокус сразу устанавливается на body.
А на html пробовал?
M>Но на мой взгяд довольно странно производить такие действия, чтобы получить картину, ожидаемую по умолчанию — загрузился документ, остался открытым на начале, если не было scroll_to_view и т.п.
С одной стороны да, с другой фокус тоже куда-то вешать надо.