Spec-Zone.ru › Web APIs

HTMLSlotElement

Базовая поддержка Широко распространена *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с января 2020 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Интерфейс HTMLSlotElement API Shadow DOM позволяет получить доступ к имени и назначенным узлам элемента HTML <slot>.

EventTarget Node Element HTMLElement HTMLSlotElement

Свойства экземпляра

Также наследует свойства от своего родительского интерфейса, HTMLElement.

HTMLSlotElement.name

Строка, используемая для получения и установки имени слота.

Методы экземпляра

Также наследует методы от своего родительского интерфейса, HTMLElement.

HTMLSlotElement.assign()

Устанавливает вручную назначенные узлы для этого слота на указанные узлы.

HTMLSlotElement.assignedNodes()

Возвращает последовательность узлов, назначенных этому слоту. Если опция flatten установлена в true, она возвращает последовательность узлов, назначенных этому слоту, а также узлов, назначенных другим слотам, являющимся потомками этого слота. Если назначенные узлы не найдены, возвращается резервное содержимое слота.

HTMLSlotElement.assignedElements()

Возвращает последовательность элементов, назначенных этому слоту (и никаких других узлов). Если опция flatten установлена в true, она возвращает последовательность элементов, назначенных этому слоту, а также элементов, назначенных другим слотам, являющимся потомками этого слота. Если назначенные элементы не найдены, возвращается резервное содержимое слота.

События

Также наследует события от своего родительского интерфейса, HTMLElement.

Подпишитесь на эти события, используя addEventListener(), или назначив обработчик события к свойству oneventname этого интерфейса.

slotchange

Срабатывает в экземпляре HTMLSlotElement (<slot> элемент), когда меняются узел(ы), содержащиеся в этом слоте.

Примеры

Следующий фрагмент взят из нашего примера slotchange (посмотреть онлайн).

let slots = this.shadowRoot.querySelectorAll("slot");
slots[1].addEventListener("slotchange", (e) => {
  let nodes = slots[1].assignedNodes();
  console.log(
    `Element in Slot "${slots[1].name}" changed to "${nodes[0].outerHTML}".`,
  );
});

Здесь мы получаем ссылки на все слоты, а затем добавляем обработчик события slotchange ко второму слоту в шаблоне — это тот, содержимое которого постоянно меняется в примере.

Каждый раз, когда элемент, вставленный в слот, изменяется, мы регистрируем отчет в консоли, указывая, какой слот изменился и каким стал новый узел внутри слота.

Спецификации

Спецификация
HTML
# htmlslotelement

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
HTMLSlotElement 53 79 63 40 10 53 63 41 10 6.0 53
assign 86 86 92 72 16.4 86 92 61 16.4 14.0 86
assignedElements 65 79 66 52 12.1 65 66 47 12.2 9.0 65
assignedNodes 53 79 63 40 10 53 63 41 10 6.0 53
name 53 79 63 40 10 53 63 41 10 6.0 53
slotchange_event 53 79 63 40 10.1
10–10.1Обработчик события onslotchange не поддерживается.
53 63 41 10.3
10–10.3Обработчик события onslotchange не поддерживается.
6.0 53

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API