Документ HTML - корневой узел дерева. Содержит методы, которые применимы для узла HTML.
Полное описание, параметры и ограничения
ДокументHTML (HTMLDocument)
ДокументHTML (HTMLDocument)
Доступен, начиная с версии 8.2.
Свойства:
Атрибуты (Attributes)
ДокументВладелец (OwnerDocument)
ДочерниеУзлы (ChildNodes)
ЗначениеУзла (NodeValue)
ИмяУзла (NodeName)
ЛокальноеИмя (LocalName)
ПервыйДочерний (FirstChild)
ПоследнийДочерний (LastChild)
ПредыдущийСоседний (PreviousSibling)
Префикс (Prefix)
РодительскийУзел (ParentNode)
СледующийСоседний (NextSibling)
ТекстовоеСодержимое (TextContent)
ТипУзла (NodeType)
URIДокумента (DocumentURI)
URL (URL)
Аплеты (Applets)
Домен (Domain)
Заголовок (Title)
Картинки (Images)
КодировкаИсточника (InputEncoding)
Отношение (Referrer)
Ссылки (Links)
Тело (Body)
Формы (Forms)
ЭлементДокумента (DocumentElement)
Якоря (Anchors)
Методы:
ВставитьПеред (InsertBefore)
ДобавитьДочерний (AppendChild)
ЕстьАтрибуты (HasAttributes)
ЕстьДочерниеУзлы (HasChildNodes)
ЗаменитьДочерний (ReplaceChild)
КлонироватьУзел (CloneNode)
Нормализовать (Normalize)
ПолучитьПользовательскиеДанные (GetUserData)
СравнитьПозициюВДокументе (CompareDocumentPosition)
УдалитьДочерний (RemoveChild)
УзелИдентичен (IsSameNode)
УзелРавен (IsEqualNode)
УстановитьПользовательскиеДанные (SetUserData)
АдаптироватьУзел (AdoptNode)
ИзвлечьТолькоТекст (ExtractPlainText)
ИмпортироватьУзел (ImportNode)
НайтиПоФильтру (FindByFilter)
ПереименоватьУзел (RenameNode)
ПолучитьЭлементПоИдентификатору (GetElementById)
ПолучитьЭлементыПоИмени (GetElementByTagName)
СоздатьАтрибут (CreateAttribute)
СоздатьИтераторУзлов (CreateNodeIterator)
СоздатьКомментарий (CreateComment)
СоздатьОбходДерева (CreateTreeWalker)
СоздатьТекстовыйУзел (CreateTextNode)
СоздатьЭлемент (CreateElement)
УдалитьПоКатегории (DeleteByCategory)
УдалитьПоФильтру (DeleteByFilter)
Конструкторы:
Документ HTML с заголовком
Описание:
Документ HTML - корневой узел дерева. Содержит методы, которые применимы для узла HTML.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
См. также:
ОболочкаHTMLДокумента, метод ПолучитьДокументHTML
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Настроить локальный якорь и проверить его назначение
Ссылка ведёт только на собственный id note. Остальные свойства описывают ссылку, а не выполняют переход.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте учебную базу платформы 8.5.1.1343 и серверную процедуру учебного общего модуля. Каждый пример выполняйте отдельно.
Все данные заказа вымышлены и находятся в строке. ЧтениеHTML разбирает данные, но не является браузером: форма не отправляется, ссылки не открываются, картинки не скачиваются.
Никакие файлы, адреса сайтов, токены и документы информационной базы не нужны. Не заменяйте учебную строку произвольным внешним HTML без отдельной проверки безопасности.
Индексы коллекций начинаются с нуля. Перед обращением к найденному узлу проверяйте Неопределено; перед специальными свойствами элемента проверяйте его тип.
HTML = "<html><head><title>Учебный заказ</title><meta id='meta' name='description' content='Вымышленный заказ'></head>
|<body id='body'><p id='note'>Заказ существует только в памяти</p><pre id='code'>A-01: 3
|B-02: 1</pre>
|<form id='order' name='order' action='' method='get'>
|<input id='customer' name='customer' type='text' value='Учебный покупатель'>
|<input id='accepted' name='accepted' type='checkbox' value='yes'>
|<button id='preview' name='preview' type='button' value='preview'>Предпросмотр</button></form>
|<table id='items' summary='Книга и ручка'><caption id='caption'>Товары</caption><colgroup><col id='column'></colgroup><tbody>
|<tr id='book'><td id='book-name'>Книга</td><td>3</td></tr><tr id='pen'><td>Ручка</td><td>1</td></tr>
|</tbody></table><a id='help' name='help' href='#note'>Пояснение</a><img id='logo' alt='Учебная картинка без источника'>
|</body></html>";
Чтение = Новый ЧтениеHTML;
Чтение.УстановитьСтроку(HTML);
Попытка
Построитель = Новый ПостроительDOM;
Документ = Построитель.Прочитать(Чтение);
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если ТипЗнч(Документ) <> Тип("ДокументHTML") Тогда
ВызватьИсключение "Ожидался ДокументHTML, а не XML-документ";
КонецЕсли;
Якорь = Документ.ПолучитьЭлементПоИдентификатору("help");
Если Якорь = Неопределено Тогда
ВызватьИсключение "Не найден учебный элемент help";
КонецЕсли;
Если ТипЗнч(Якорь) <> Тип("ЭлементЯкорьHTML") Тогда
ВызватьИсключение "Неожиданный тип учебного элемента help";
КонецЕсли;
Якорь.Гиперссылка = "#note";
Якорь.Имя = "help";
Якорь.Цель = "_self";
Якорь.БазовыйЯзык = "ru";
Якорь.НаборСимволов = "utf-8";
Якорь.КлавишаДоступа = "h";
Якорь.ПорядокОбхода = "1";
Якорь.Тип = "text/html";
Якорь.Отношение = "help";
Якорь.ОбратнаяСсылка = "";
Якорь.Очертание = "rect";
Якорь.Координаты = "";
Сообщить(Якорь.Гиперссылка = "#note");
Сообщить(Документ.ПолучитьЭлементПоИдентификатору("note") <> Неопределено);
Сообщить(Якорь.ПорядокОбхода = "1");
Сообщить(Документ.Якоря.Количество() = 1);Разбор по шагам
Фрагмент #note относится к элементу в том же документе, не к внешнему серверу.
По справке ПорядокОбхода якоря — Строка, поэтому передаём "1".
Проверяем наличие адресуемого элемента; свойства отношения и языка не являются HTTP-ответом.
Как проверить результат
Четыре проверки Истина: локальный href, существующий note, строковый порядок и один якорь.
Ни браузер, ни HTTPСоединение в коде не создаются.
Ожидаемый результат
Подготовлена описанная локальная ссылка без перехода по ней.
На что обратить внимание
ЭлементЯкорьHTML — не Гиперссылка поля формы и не Ссылка справочника 1С.
Синтаксически заданный href ещё не доказывает допустимость или безопасность внешнего URL.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Настроить цвета ссылок тела HTML отдельно от интерфейса 1С
Тело документа хранит старые HTML-настройки цветов. Изменяем только собственный документ и не включаем фоновую картинку.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте учебную базу платформы 8.5.1.1343 и серверную процедуру учебного общего модуля. Каждый пример выполняйте отдельно.
Все данные заказа вымышлены и находятся в строке. ЧтениеHTML разбирает данные, но не является браузером: форма не отправляется, ссылки не открываются, картинки не скачиваются.
Никакие файлы, адреса сайтов, токены и документы информационной базы не нужны. Не заменяйте учебную строку произвольным внешним HTML без отдельной проверки безопасности.
Индексы коллекций начинаются с нуля. Перед обращением к найденному узлу проверяйте Неопределено; перед специальными свойствами элемента проверяйте его тип.
HTML = "<html><head><title>Учебный заказ</title><meta id='meta' name='description' content='Вымышленный заказ'></head>
|<body id='body'><p id='note'>Заказ существует только в памяти</p><pre id='code'>A-01: 3
|B-02: 1</pre>
|<form id='order' name='order' action='' method='get'>
|<input id='customer' name='customer' type='text' value='Учебный покупатель'>
|<input id='accepted' name='accepted' type='checkbox' value='yes'>
|<button id='preview' name='preview' type='button' value='preview'>Предпросмотр</button></form>
|<table id='items' summary='Книга и ручка'><caption id='caption'>Товары</caption><colgroup><col id='column'></colgroup><tbody>
|<tr id='book'><td id='book-name'>Книга</td><td>3</td></tr><tr id='pen'><td>Ручка</td><td>1</td></tr>
|</tbody></table><a id='help' name='help' href='#note'>Пояснение</a><img id='logo' alt='Учебная картинка без источника'>
|</body></html>";
Чтение = Новый ЧтениеHTML;
Чтение.УстановитьСтроку(HTML);
Попытка
Построитель = Новый ПостроительDOM;
Документ = Построитель.Прочитать(Чтение);
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если ТипЗнч(Документ) <> Тип("ДокументHTML") Тогда
ВызватьИсключение "Ожидался ДокументHTML, а не XML-документ";
КонецЕсли;
Тело = Документ.Тело;
Если Тело = Неопределено Тогда
ВызватьИсключение "В собственной HTML-строке не найдено тело";
КонецЕсли;
Тело.ЦветФона = "#ffffff";
Тело.ЦветТекста = "#17212b";
Тело.Связь = "#245dcc";
Тело.АктивнаяСсылка = "#a53024";
Тело.ПосещеннаяСсылка = "#654291";
Тело.Фон = "";
Сообщить(Тело.Фон = "");
Сообщить(Тело.ЦветТекста = "#17212b");
Сообщить(Тело.Связь = "#245dcc");
Сообщить(Документ.Формы.Количество() = 1);Разбор по шагам
Получаем Тело из документа, а не выдумываем наличие у него полного общего DOM-интерфейса.
Связь, АктивнаяСсылка и ПосещеннаяСсылка отвечают за разные состояния ссылок.
Фон — ссылка на фоновый ресурс; оставляем пустым, чтобы урок не зависел от картинок.
Как проверить результат
Четыре проверки Истина: пустой фон, два выбранных цвета и неизменная одна форма.
Цвета кнопок и полей управляемой формы 1С не должны измениться.
Ожидаемый результат
Настройки тела изменены отдельно от данных заказа и интерфейса платформы.
На что обратить внимание
Это не Цвет или Стиль управляемой формы 1С.
Справка ЭлементТелоHTML содержит свойства тела, но не перечисляет общие методы узла; не переносите их сюда по аналогии.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.