Имя: Пароль:
1C
1С v8
Позиционирование в Поле HTML документа
, ,
0 Geroy
 
09.10.20
11:37
Как программно сменить позиционирование в поле HTML.

В поле html хранится переписка, необходимо при открытии формы сразу показывать последний комментарий, исключить тем самым необходимость прокрутки поля.
1 Garykom
 
гуру
09.10.20
11:49
(0) https://learn.javascript.ru/metrics-window

window.scrollBy(0,10)
2 Garykom
 
гуру
09.10.20
11:50
(1)+ Хотя в твоем случае проще сразу до тега в котором комментарий крутить
3 Йохохо
 
09.10.20
11:55
вроде раньше дня этого anchor ставится
4 Geroy
 
09.10.20
11:58
(1) скорее всего нужно scrollTo

(3) есть прмер?
5 Garykom
 
гуру
09.10.20
12:02
(4) скорее elem.scrollIntoView()
6 Йохохо
 
09.10.20
12:14
(4) посмотри на хреф под (4), id=860459#3 вот #3 это якорь, только вода утекла и теперь по другому называется
7 PloAl
 
09.10.20
12:14
window.scrollTo(0, document.body.scrollHeight);

Если переписка небольшая все открывается моментально.
Но если +- от 1000 да еще и с картинками отображение и позиционирование будет тупить пару тройку секунд, дальше больше.
8 Geroy
 
09.10.20
13:57
(2) как найти координаты?
9 acht
 
09.10.20
14:11
(8) ... an optional fragment url component preceded by a hash (#). The fragment contains a fragment identifier providing direction to a secondary resource, such as a section heading in an article identified by the remainder of the URI. When the primary resource is an HTML document, the fragment is often an id attribute of a specific element, and web browsers will scroll this element into view.
10 Йохохо
 
09.10.20
14:26
(9) =)
(8) в общем тебе надо вот такую хрень воткнуть перед последней темой <a href="#8" style="text-decoration:none;" class="interlink" data-rel="#8">8</a> и АдресHTML = "http://www.v8.1c.ru/foo#8";;
код стыбзен с этой страницы)
11 PloAl
 
09.10.20
15:24
(10) Если в поле HTML содержится строка с текстом html вместо ссылки на локальный файл или внешний ресурс то перейти по якорю не получиться.
12 Geroy
 
13.10.20
12:07
решение:

Элементы.ТекстHTML.Документ.body.scrollTop = Позиция;
13 acht
 
13.10.20
12:38
(12) Тогда уж без вычисления позиции:

Элементы.Поле1.Документ.getElementById("qqq").scrollIntoView(Истина);
14 Geroy
 
14.10.20
08:34
(13) ну а "qqq" это разве не позиция (элемент) до которого нужно прокрутить ?
15 acht
 
14.10.20
08:44
(14) Ты хранишь идентификатор элемента в переменной с именем "Позиция"?
body.scrollTop это вообще-то число: https://drafts.csswg.org/cssom-view/#dom-element-scrolltop
16 Geroy
 
14.10.20
12:28
(15) нет, тут число координата начала необходимого мне комментария
17 acht
 
14.10.20
12:33
(16) а "qqq" - идентификатор элемента, к которому осуществляется прокрутка
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший