Получает текст HTML-документа.
Синтаксис
ПолучитьТекст()Полное описание, параметры и ограничения
ПолеHTMLДокумента.ПолучитьТекст (HTMLDocumentField.GetText)
ПолеHTMLДокумента (HTMLDocumentField)
ПолучитьТекст (GetText)
Доступен, начиная с версии 8.0.
Синтаксис:
ПолучитьТекст()
Возвращаемое значение:
Тип: Строка.
Описание:
Получает текст HTML-документа.
Доступность:
Толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Проверить собственный HTML как строку и как DOM-документ
Сначала читаем значимый фрагмент HTML, затем проверяем корневой узел html. Документ — внешний объект реализации, не ДокументDOM из XML API.
Где и как запускать
Полный модуль собственной обычной формы; толстый клиент. Не HTML браузера руководства и не управляемая форма.
Подготовка
Создайте внешнюю обработку с отдельной обычной формой в учебной базе. Добавьте ПолеHTMLДокумента с именем УчебныйHTML и кнопку УчебнаяКоманда вне него.
Добавьте реквизиты УчебноеНазвание (Строка 100), УчебноеКоличество (Число 9.0), УчебноеРедактирование (Булево). Поле ввода УчебноеНазвание свяжите с реквизитом названия.
ПриОткрытии назначьте одноимённой процедуре. Действие внешней кнопки вручную не назначайте: код связывает Нажатие с экспортной процедурой ВыполнитьУчебноеДействие(Элемент). ПриОткрытии самой формы остаётся без параметров.
Толстый клиент с обычными формами. Каждый урок — полный модуль своей копии формы. Собственный HTML не содержит сценариев, внешних картинок, URL или сетевых запросов.
Процедура ПриОткрытии()
УчебноеНазвание = "Книга";
УчебноеКоличество = 3;
УчебноеРедактирование = Ложь;
Поле = ЭтаФорма.ЭлементыФормы.УчебныйHTML;
Поле.УстановитьРежим(РежимПоляHTMLДокумента.Просмотр);
Поле.УстановитьТекст(СформироватьУчебныйHTML());
Кнопка = ЭтаФорма.ЭлементыФормы.УчебнаяКоманда;
Кнопка.УстановитьДействие("Нажатие", Новый Действие("ВыполнитьУчебноеДействие"));
КонецПроцедуры
Процедура ВыполнитьУчебноеДействие(Элемент) Экспорт
Поле = ЭтаФорма.ЭлементыФормы.УчебныйHTML;
ТекстHTML = Поле.ПолучитьТекст();
Сообщить(СтрНайти(ТекстHTML, "Количество: 3") > 0);
ДокументHTML = Поле.Документ;
Если ДокументHTML = Неопределено Тогда
Сообщить("HTML-документ пока недоступен; дождитесь загрузки собственного текста и повторите");
Возврат;
КонецЕсли;
Корень = ДокументHTML.documentElement;
Если Корень = Неопределено ИЛИ Корень = Null Тогда
Сообщить("Корневой узел ещё не готов; повторите после загрузки");
Возврат;
КонецЕсли;
Сообщить(НРег(Строка(Корень.nodeName)) = "html");
Сообщить(УчебноеКоличество = 3);
КонецПроцедуры
Функция СформироватьУчебныйHTML()
БезопасноеНазвание = СтрЗаменить(УчебноеНазвание, "&", "&");
БезопасноеНазвание = СтрЗаменить(БезопасноеНазвание, "<", "<");
БезопасноеНазвание = СтрЗаменить(БезопасноеНазвание, ">", ">");
Возврат "<!doctype html><html><head><meta charset='utf-8'><title>Свой учебный HTML</title></head><body><h1>"
+ БезопасноеНазвание + "</h1><p>Количество: " + Строка(УчебноеКоличество) + "</p></body></html>";
КонецФункции
Разбор по шагам
Свойство Документ только для чтения. Оно даёт внешний HTML DOM по реализации WebKit, не созданный Новый ДокументDOM.
До обращения к documentElement проверено отсутствие документа; до nodeName проверено отсутствие корня.
documentElement и nodeName — члены внешнего DOM, их регистр написания важен. Имя узла сравнивается без предположения HTML/html.
Читается только собственный документ из УстановитьТекст. Повторная кнопка после загрузки предусмотрена, синхронная готовность не обещается.
Как проверить результат
После загрузки собственного текста: три Истина.
Никакие атрибуты, дочерние узлы или данные формы не изменяются.
Ожидаемый результат
Два способа чтения собственного документа отделены и имеют проверки готовности.
На что обратить внимание
Для страницы другого происхождения документ может быть недоступен: ограничения безопасности не обходятся.
Не переносите сюда русские методы ЧтениеDOM, предназначенные для другого типа объекта.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Включить редактирование своего HTML без перезаписи при выходе
Кнопка переключает режим, но не вызывает УстановитьТекст повторно. Ручная правка заголовка остаётся в HTML поля, а реквизит Книга сам не обновляется.
Где и как запускать
Полный модуль собственной обычной формы; толстый клиент. Не HTML браузера руководства и не управляемая форма.
Подготовка
Создайте внешнюю обработку с отдельной обычной формой в учебной базе. Добавьте ПолеHTMLДокумента с именем УчебныйHTML и кнопку УчебнаяКоманда вне него.
Добавьте реквизиты УчебноеНазвание (Строка 100), УчебноеКоличество (Число 9.0), УчебноеРедактирование (Булево). Поле ввода УчебноеНазвание свяжите с реквизитом названия.
ПриОткрытии назначьте одноимённой процедуре. Действие внешней кнопки вручную не назначайте: код связывает Нажатие с экспортной процедурой ВыполнитьУчебноеДействие(Элемент). ПриОткрытии самой формы остаётся без параметров.
Толстый клиент с обычными формами. Каждый урок — полный модуль своей копии формы. Собственный HTML не содержит сценариев, внешних картинок, URL или сетевых запросов.
Процедура ПриОткрытии()
УчебноеНазвание = "Книга";
УчебноеКоличество = 3;
УчебноеРедактирование = Ложь;
Поле = ЭтаФорма.ЭлементыФормы.УчебныйHTML;
Поле.УстановитьРежим(РежимПоляHTMLДокумента.Просмотр);
Поле.УстановитьТекст(СформироватьУчебныйHTML());
Кнопка = ЭтаФорма.ЭлементыФормы.УчебнаяКоманда;
Кнопка.УстановитьДействие("Нажатие", Новый Действие("ВыполнитьУчебноеДействие"));
КонецПроцедуры
Процедура ВыполнитьУчебноеДействие(Элемент) Экспорт
Поле = ЭтаФорма.ЭлементыФормы.УчебныйHTML;
УчебноеРедактирование = НЕ УчебноеРедактирование;
Если УчебноеРедактирование Тогда
Поле.УстановитьРежим(РежимПоляHTMLДокумента.Редактирование);
Сообщить("Измените заголовок Книга на Учебная книга в самом HTML-поле");
Иначе
Поле.УстановитьРежим(РежимПоляHTMLДокумента.Просмотр);
ТекстПослеПравки = Поле.ПолучитьТекст();
Сообщить(СтрНайти(ТекстПослеПравки, "Учебная книга") > 0);
Сообщить(УчебноеНазвание = "Книга");
Сообщить(УчебноеКоличество = 3);
КонецЕсли;
КонецПроцедуры
Функция СформироватьУчебныйHTML()
БезопасноеНазвание = СтрЗаменить(УчебноеНазвание, "&", "&");
БезопасноеНазвание = СтрЗаменить(БезопасноеНазвание, "<", "<");
БезопасноеНазвание = СтрЗаменить(БезопасноеНазвание, ">", ">");
Возврат "<!doctype html><html><head><meta charset='utf-8'><title>Свой учебный HTML</title></head><body><h1>"
+ БезопасноеНазвание + "</h1><p>Количество: " + Строка(УчебноеКоличество) + "</p></body></html>";
КонецФункции
Разбор по шагам
Первое нажатие включает Редактирование. Пользователь сам изменяет заголовок внутри HTML-поля.
Второе нажатие возвращает Просмотр и читает текущий текст, не строя документ заново.
Изменения HTML не привязаны автоматически к УчебноеНазвание. Показано различие визуального документа и реквизита формы.
Перейти, Назад и Вперед в режиме Редактирование недоступны по справке; этот урок их не вызывает.
Как проверить результат
После ручной замены и второго нажатия: три Истина.
Если заголовок не меняли, первое сравнение Ложь — это отсутствие правки, не успешное редактирование.
Ожидаемый результат
Ручная правка HTML сохраняется в поле, но не выдаётся за запись реквизита.
На что обратить внимание
Не вставляйте УстановитьТекст в ветку выхода: это затёрло бы введённое пользователем.
ПолучитьТекст не является сохранением файла или записи базы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.