ЭлементКнопкаHTML.ТекстовоеСодержимое

Свойства · TextContent

Тип: Строка. Текстовое содержимое узла HTML. Содержит текстовое значение узла и всех его потомков. Значение не содержит разметки. Никакой нормализации пробельных символов не выполняется, и возвращаемая строка не содержит пробельных символов в содержимом элемента (см. свойство ЭтоПробельныеСимволыЭлемента). Принцип формирования текстового значения узла: Элемент, Атрибут, ФрагментДокумента - объединение текстового содержимого каждого из дочерних узлов, исключая Комментарий. Пустая строка, если дочерних узлов нет; Текст, Комментарий - значение свойства ЗначениеУзла; Документ, ОпределениеТипаДокумента - Неопределено.

Полное описание, параметры и ограничения

ЭлементКнопкаHTML.ТекстовоеСодержимое (HTMLButtonElement.TextContent)

ЭлементКнопкаHTML (HTMLButtonElement)

ТекстовоеСодержимое (TextContent)

Доступен, начиная с версии 8.2.

Использование:
Чтение и запись.
Описание:
Тип: Строка.
Текстовое содержимое узла HTML.
Содержит текстовое значение узла и всех его потомков. Значение не содержит разметки.
Никакой нормализации пробельных символов не выполняется, и возвращаемая строка не содержит пробельных символов в содержимом элемента (см. свойство ЭтоПробельныеСимволыЭлемента).
Принцип формирования текстового значения узла:
Элемент, Атрибут, ФрагментДокумента - объединение текстового содержимого каждого из дочерних узлов, исключая Комментарий. Пустая строка, если дочерних узлов нет;
Текст, Комментарий - значение свойства ЗначениеУзла;
Документ, ОпределениеТипаДокумента - Неопределено.
Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Проверить паспорт и границы пустых HTML-элементов

Для каждого созданного элемента читаем имена, тип, текст и атрибуты. До перехода к детям проверяем, существуют ли они.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте учебную базу платформы 8.5.1.1343 и серверную процедуру учебного общего модуля. Каждый пример выполняйте отдельно.

  2. Все данные заказа вымышлены и находятся в строке. ЧтениеHTML разбирает данные, но не является браузером: форма не отправляется, ссылки не открываются, картинки не скачиваются.

  3. Никакие файлы, адреса сайтов, токены и документы информационной базы не нужны. Не заменяйте учебную строку произвольным внешним HTML без отдельной проверки безопасности.

  4. Индексы коллекций начинаются с нуля. Перед обращением к найденному узлу проверяйте Неопределено; перед специальными свойствами элемента проверяйте его тип.

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-документ";
КонецЕсли;
Ожидаемые = Новый Соответствие;
Ожидаемые.Вставить("guide-section", "ЭлементHTML");
Ожидаемые.Вставить("div", "ЭлементБлокHTML");
Ожидаемые.Вставить("pre", "ЭлементФорматированногоТекстаHTML");
Ожидаемые.Вставить("form", "ЭлементФормаHTML");
Ожидаемые.Вставить("input", "ЭлементВводаHTML");
Ожидаемые.Вставить("button", "ЭлементКнопкаHTML");
Ожидаемые.Вставить("table", "ЭлементТаблицаHTML");
Ожидаемые.Вставить("tr", "ЭлементСтрокаТаблицыHTML");
Ожидаемые.Вставить("td", "ЭлементЯчейкаТаблицыHTML");
Ожидаемые.Вставить("col", "ЭлементКолонкаТаблицыHTML");
Ожидаемые.Вставить("caption", "ЭлементЗаголовокТаблицыHTML");
Ожидаемые.Вставить("a", "ЭлементЯкорьHTML");
Ожидаемые.Вставить("img", "ЭлементКартинкаHTML");
Ожидаемые.Вставить("meta", "ЭлементМетаHTML");
Ожидаемые.Вставить("link", "ЭлементСвязьHTML");
Ожидаемые.Вставить("head", "ЭлементЗаголовокHTML");
Ожидаемые.Вставить("html", "ЭлементРазметкаHTML");
Ожидаемые.Вставить("hr", "ЭлементЛинияHTML");
Ожидаемые.Вставить("script", "ЭлементСкриптHTML");
Ожидаемые.Вставить("iframe", "ЭлементПлавающийФреймHTML");
Ожидаемые.Вставить("frame", "ЭлементФреймHTML");
Ожидаемые.Вставить("frameset", "ЭлементНаборФреймовHTML");
Ожидаемые.Вставить("embed", "ЭлементВставкаHTML");
Ожидаемые.Вставить("object", "ЭлементОбъектHTML");
Ожидаемые.Вставить("applet", "ЭлементАплетHTML");
Для Каждого Пара Из Ожидаемые Цикл
    Узел = Документ.СоздатьЭлемент(Пара.Ключ);
    Если ТипЗнч(Узел) <> Тип(Пара.Значение) Тогда
        ВызватьИсключение "Фактический тип фабрики отличается для " + Пара.Ключ;
    КонецЕсли;
    Сообщить(СтрШаблон("%1: %2 / %3 / %4", Пара.Ключ,
        Узел.ИмяУзла, Узел.ИмяЭлемента, Узел.ТипУзла));
    Сообщить(СтрШаблон("Локальное имя: %1; префикс: %2", Узел.ЛокальноеИмя, Узел.Префикс));
    Сообщить("Значение узла: " + Строка(Узел.ЗначениеУзла));
    Сообщить("Текст: " + Узел.ТекстовоеСодержимое);
    Сообщить(Узел.ДочерниеУзлы.Количество() = 0);
    Сообщить(Не Узел.ЕстьДочерниеУзлы());
    Сообщить(Узел.ПервыйДочерний = Неопределено);
    Сообщить(Узел.ПоследнийДочерний = Неопределено);
    Сообщить(Узел.ПредыдущийСоседний = Неопределено);
    Сообщить(Узел.СледующийСоседний = Неопределено);
    Сообщить(Узел.ЕстьАтрибуты() = (Узел.Атрибуты.Количество() > 0));
КонецЦикла;

Разбор по шагам

  1. Пустые элементы созданы отдельно, а не найдены в заполненном внешнем документе.

  2. ИмяУзла обозначает тег; ЗначениеУзла не заменяет значение input или текст кнопки.

  3. Узел не вставлен в дерево, поэтому у него нет соседей; у пустого элемента нет детей.

  4. Фактическое количество атрибутов сопоставляем с ЕстьАтрибуты, не предполагая отсутствие значений по умолчанию.

Как проверить результат

  1. В каждом блоке семь сравнений Истина: пустые дети, границы и согласованность признака атрибутов.

  2. Вывод имён и значений изучите отдельно: регистр тегов и представление Неопределено не объявлены бизнес-данными.

Ожидаемый результат

Новичок видит, какие свойства общего узла допустимы и где нужна проверка границы.

На что обратить внимание

  1. Не обращайтесь к ПервыйДочерний.Данные без проверки наличия ребёнка.

  2. У ЭлементТелоHTML в экспортированной справке другой набор свойств, поэтому он исключён из списка.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Различить подпись HTML-кнопки, value и тип button

Кнопка предпросмотра не отправляет форму этим примером. Подпись меняется через текстовое содержимое, а Значение остаётся отдельным полем.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте учебную базу платформы 8.5.1.1343 и серверную процедуру учебного общего модуля. Каждый пример выполняйте отдельно.

  2. Все данные заказа вымышлены и находятся в строке. ЧтениеHTML разбирает данные, но не является браузером: форма не отправляется, ссылки не открываются, картинки не скачиваются.

  3. Никакие файлы, адреса сайтов, токены и документы информационной базы не нужны. Не заменяйте учебную строку произвольным внешним HTML без отдельной проверки безопасности.

  4. Индексы коллекций начинаются с нуля. Перед обращением к найденному узлу проверяйте Неопределено; перед специальными свойствами элемента проверяйте его тип.

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-документ";
КонецЕсли;
Кнопка = Документ.ПолучитьЭлементПоИдентификатору("preview");
Если Кнопка = Неопределено Тогда
    ВызватьИсключение "Не найден учебный элемент preview";
КонецЕсли;
Если ТипЗнч(Кнопка) <> Тип("ЭлементКнопкаHTML") Тогда
    ВызватьИсключение "Неожиданный тип учебного элемента preview";
КонецЕсли;
Форма = Документ.ПолучитьЭлементПоИдентификатору("order");
Если Форма = Неопределено Тогда
    ВызватьИсключение "Не найден учебный элемент order";
КонецЕсли;
Если ТипЗнч(Форма) <> Тип("ЭлементФормаHTML") Тогда
    ВызватьИсключение "Неожиданный тип учебного элемента order";
КонецЕсли;
Сообщить(Кнопка.Форма() = Форма);
Кнопка.Тип = "button";
Кнопка.Имя = "preview";
Кнопка.Значение = "preview-only";
Кнопка.ТекстовоеСодержимое = "Показать учебный заказ";
Кнопка.Недоступен = Ложь;
Кнопка.ПорядокОбхода = 3;
Кнопка.КлавишаДоступа = "p";
Сообщить(Кнопка.Значение = "preview-only");
Сообщить(Кнопка.ТекстовоеСодержимое = "Показать учебный заказ");

Разбор по шагам

  1. Кнопка.Форма() возвращает HTML-форму из собственного дерева.

  2. Тип button задаётся явно; это не обработчик команды формы 1С.

  3. Значение и видимый текст кнопки изменяем независимо.

  4. Клавиша и порядок обхода — декларации HTML, не выполненные нажатия.

Как проверить результат

  1. Три сравнения дают Истина: владелец, value и текст.

  2. Никакого HTTP-запроса или обработки команды 1С не произошло.

Ожидаемый результат

Разделены разные свойства настоящей кнопки собственного документа.

На что обратить внимание

  1. Без обработчика тип button сам по себе не выполняет предпросмотр.

  2. Изменённый HTML нужно отдельно передать разрешённому механизму отображения, если нужен интерфейс.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.