ЭлементЗаголовокHTML.УдалитьАтрибут

Методы · RemoveAttribute

Удаляет атрибут с указанным именем.

Синтаксис

УдалитьАтрибут(<Имя>)
Полное описание, параметры и ограничения

ЭлементЗаголовокHTML.УдалитьАтрибут (HTMLHeadElement.RemoveAttribute)

ЭлементЗаголовокHTML (HTMLHeadElement)

УдалитьАтрибут (RemoveAttribute)

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

Синтаксис:
УдалитьАтрибут(<Имя>)
Параметры:

<Имя> (обязательный)
Тип: Строка.
Имя атрибута.
Описание:

Удаляет атрибут с указанным именем.

Доступность:

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

Примечание:
Если данный узел в режиме Только для чтения, будет инициировано исключение.
Использование в версии:

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

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

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

Пометить элементы учебным атрибутом и убрать пометку

Атрибут data-guide хранит номер урока. Для каждого вида элемента устанавливаем, читаем и удаляем именно его, не изменяя ссылки на ресурсы.

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

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

Подготовка

  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");
Для Каждого Пара Из Ожидаемые Цикл
    Узел = Документ.СоздатьЭлемент(Пара.Ключ);
    Если ТипЗнч(Узел) <> Тип(Пара.Значение) Тогда
        ВызватьИсключение "Фактический тип фабрики отличается для " + Пара.Ключ;
    КонецЕсли;
    Узел.УстановитьАтрибут("data-guide", "A-01");
    Сообщить(Узел.ЕстьАтрибут("data-guide"));
    Сообщить(Узел.ПолучитьАтрибут("data-guide") = "A-01");
    Атрибут = Узел.ПолучитьУзелАтрибута("data-guide");
    Если Атрибут = Неопределено Тогда
        ВызватьИсключение "Установленная учебная пометка не получена";
    КонецЕсли;
    Сообщить(Атрибут.ЭлементВладелец = Узел);
    Узел.УдалитьАтрибут("data-guide");
    Сообщить(Не Узел.ЕстьАтрибут("data-guide"));
    Сообщить(Узел.ДочерниеУзлы.Количество() = 0);
КонецЦикла;

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

  1. Служебное имя data-guide не является src, href, code или обработчиком события.

  2. ПолучитьАтрибут возвращает строку значения; ПолучитьУзелАтрибута возвращает отдельный объект атрибута.

  3. После удаления проверяем отсутствие пометки и сохранность пустой структуры элемента.

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

  1. Для каждого из 25 элементов пять проверок Истина; пометка в итоге отсутствует.

  2. Внутри элементов не появляются текстовые дети от установки строкового атрибута.

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

Показан полный жизненный цикл атрибута на конкретных типах элементов.

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

  1. Атрибут DOM и реквизит элемента управляемой формы — разные механизмы.

  2. Нельзя переносить значение произвольного атрибута в число без проверки формата.

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

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

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

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

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