Spec-Zone.ru › Web APIs

ShadowRoot: свойство slotAssignment

Базовая версия 2023
Новое свойство

С марта 2023 года эта функция работает на последних версиях устройств и браузеров. Возможно, эта функция не будет работать на старых устройствах или браузерах.

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

Только для чтения slotAssignment свойство интерфейса ShadowRoot возвращает режим назначения слотов для дерева тенистого DOM. Узлы могут быть назначены автоматически (named) или вручную (manual). Значение этого свойства определяется с помощью опции slotAssignment при вызове Element.attachShadow().

Значение

Строка, которая может быть одной из следующих:

named

Элементы автоматически назначаются элементам <slot> внутри этого тенистого корня. Любые дочерние элементы узла-хоста с атрибутом slot, который соответствует атрибуту name элемента <slot> внутри этого тенистого корня, будут назначены этому слоту. Любые дочерние элементы узла-хоста без атрибута slot будут назначены элементу <slot> без атрибута name («слоту по умолчанию»), если он присутствует.

manual

Элементы не назначаются автоматически элементам <slot>. Вместо этого их необходимо вручную назначить с помощью HTMLSlotElement.assign().

Примеры

В примере ниже метод assign() используется для отображения правильной вкладки в приложении с вкладками. Функция вызывается и получает панель для отображения, которая затем назначается слоту. Мы проверяем, что slotAssignment имеет значение named, чтобы предотвратить исключение при вызове HTMLSlotElement.assign().

function UpdateDisplayTab(elem, tabIdx) {
  const shadow = elem.shadowRoot;

  // This test is usually not needed, but can be useful when debugging
  if (shadow.slotAssignment === "named") {
    console.error(
      "Trying to manually assign a slot on an automatically-assigned (named) slot",
    );
  }
  const slot = shadow.querySelector("slot");
  const panels = elem.querySelectorAll("tab-panel");
  if (panels.length && tabIdx && tabIdx <= panels.length) {
    slot.assign(panels[tabIdx - 1]);
  } else {
    slot.assign();
  }
}

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

Спецификация
DOM
# dom-shadowroot-slotassignment

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
slotAssignment 86 86 92 72 16.4 86 92 61 16.4 14.0 86

См. также

  • Element.attachShadow()
  • HTMLSlotElement.assign()

© 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/ShadowRoot/slotAssignment

Spec-Zone.ru

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