|
Позиционирование HTML поля | ☑ | ||
---|---|---|---|---|
0
ST_
28.03.24
✎
11:05
|
Здравствуйте. У меня есть поле HTML документа, в котором отображается переписка. Мне необходимо, чтобы при открытии формы было видно последние сообщения (то есть нижнюю часть). Пробовала с помощью powershell-скрипта, почему-то не заработало.
Элементы.ПредпросмотрHTMLБезВложений.ТолькоПросмотр = Ложь; ЭтаФорма.ТекущийЭлемент = Элементы.ПредпросмотрHTMLБезВложений; Shell = Новый COMОбъект("WScript.Shell"); Shell.SendKeys("{END}"); Нашла в интернете вариант с применением WebKit, но код очень старый, сейчас уже не срабатывает. Документ.parentWindow.clipboardData.SetData("Text", ПредставлениеСсылки); Документ.execCommand("Paste"); Область = Документ.body.createTextRange(); Область.findText(ПредставлениеСсылки); Область.select(); Документ.execCommand("CreateLink", Ложь, ПредставлениеСсылки); Документ.getElementsByTagName("a")[0].scrollIntoView(Истина); Смогла найти только то, что parentWindow надо заменить на DefaultView. Подскажите, пожалуйста, в какую сторону копать? Не могу найти ничего в плане литературы по этому поводу... |
|||
1
SerF_2011
28.03.24
✎
11:17
|
||||
2
Garykom
28.03.24
✎
11:18
|
Элементы.ОписаниеHTML.Document.DefaultView.НазваниеМетодаJS();
И вот внутри НазваниеМетодаJS() кодом JS реализуй прокрутку как надо |
|||
3
SerF_2011
28.03.24
✎
11:20
|
||||
4
ST_
28.03.24
✎
15:07
|
Помогло подключение обработчика ожидания, тогда
Элементы.ПредпросмотрHTMLБезВложений.Документ.body.scrollTop = Элементы.ПредпросмотрHTMLБезВложений.Документ.body.offsetHeight + 9999; сработал! |
|||
5
ST_
28.03.24
✎
15:08
|
(1),(2), спасибо!
|
|||
6
Garykom
28.03.24
✎
15:16
|
(4) Это стандартно, задержка
Надо время давать webkit чтобы подгрузить и обработать страницу Даже в обработчике события ДокументСформирован не факт что документ уже готов, весь внутренний код JS отработал Ну и Особенности работы с объектной моделью HTML документа
Объектная модель документа (DOM) позволяет работать с HTML документом, как с деревом элементов. С помощью объектной модели разработчик может найти нужный ему HTML документ, может обращаться к его свойствам, в том числе вносить в документ изменения. Важно помнить, что, при изменении документа (программном изменении, либо при навигации поля HTML документа) объекты HTML документа перестраиваются не моментально. В течении некоторого времени объектная модель документа не готова к использованию. Поэтому при разработке алгоритма, модифицирующего HTML документ, следует дождаться готовности HTML документа. Для получения информации о готовности HTML документа к работе рекомендуется использовать обработчик события ДокументСформирован поля HTML-документа. При этом нужно помнить о следующей особенности: в момент окончания формирования документа, сообщение о событии помещается в очередь, но, до того как оно будет обработано, может произойти новое изменение HTML документа. Например, первый вызов данного события в форме обычно информирует о внутренней навигации поля HTML-документа. Поэтому в обработчике события ДокументСформирован рекомендуется также анализировать значение свойства readyState HTML-документа. Значение этого свойства показывает текущий этап формирования HTML документа. В случае, когда значение равно Complete, формирование объектной модели завершено, документ готов к работе. Не следует анализировать готовность HTML документа вне обработчика события ДокументСформирован путем циклического опроса значения свойства readyState: Копировать в буфер обмена Пока ЭлементыФормы.ПолеHTMLДокумента.Документ.readyState <> "complete" Цикл КонецЦикла; Такой цикл может работать бесконечно, т.к. формирование HTML документа использует в своей работе синхронный обмен сообщениями через системную очередь сообщений, а обработки нового сообщения, в данном случае, не происходит. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |