HTMLSlotElement
Базовая поддержка Широко распространена *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с января 2020 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Интерфейс HTMLSlotElement API Shadow DOM позволяет получить доступ к имени и назначенным узлам элемента HTML <slot>.
Свойства экземпляра
Также наследует свойства от своего родительского интерфейса, 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.110–10.1Обработчик событияonslotchange не поддерживается. |
53 | 63 | 41 | 10.310–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