DOM | Интерфейс ShadowRoot

IDL

[Exposed=Window]
interface ShadowRoot : DocumentFragment {
   readonly attribute ShadowRootMode mode;
   readonly attribute Element host;
   attribute EventHandler onslotchange;
};

enum ShadowRootMode { "open", "closed" };

Узлы ShadowRoot просто известны как «теневые корни» (shadow roots).

У теневых корней есть связанный «режим» (mode) («open» or «closed» — «открытый» или «закрытый»).

У теневых корней есть связанный «фокус делегатов» (delegates focus). Изначально установлено значение false.

У теневых корней есть связанный «доступ к внутренним элементам» (available to element internals). Изначально установлено значение false.

У теневых корней есть связанный хост, который никогда не бывает null.

Алгоритм получения родителя теневого корня при заданном событии event возвращает null, если флаг составленного события event не установлен, а теневой корень является корнем цели вызова первой структуры пути к событию event, а в противном случае — хостом теневого корня.

Получатель атрибута mode должен возвращать режим этого this.

Получатель атрибута host должен возвращать хост этого this.

Атрибут onslotchange — это IDL-атрибут обработчика событий для обработчика событий onslotchange, тип события обработчика которого — slotchange.

 

В «древовидном порядке с включением теней» (shadow-including tree order) — это предварительный порядок с включением теней, обхода в глубину дерева узлов.

«Предварительный порядок с включением теней, обхода в глубину» (Shadow-including preorder, depth-first traversal) дерева узлов tree  — это предварительный порядок, обхода tree в глубину, причем для каждого теневого хоста, встречающегося в tree, предварительный порядок с учетом тени, обхода в глубину дерева узлов теневого корня этого элемента просто после того, как он встречается.

«Включающий тень корень» (shadow-including root) объекта — это его включающий тень корень, хоста корня, если корень объекта является теневым корнем, и его корень в противном случае.

Объект A является «потомком с тенью» (shadow-including descendant) объекта B, если A является потомком B, или корень A является теневым корнем, а хост корня A является инклюзивным потомком включающим тень B.

«Инклюзивный потомок с тенью» (shadow-including inclusive descendant) — это объект или один из его потомков с тенью.

Объект A является «предком с тенью» (shadow-including ancestor) объекта B, если и только если B является теневым потомком A.

«Инклюзивный предок с тенью» (shadow-including inclusive ancestor) — это объект или один из его включающих тень предков.

Узел A является «закрытым-теневым-скрытым» (closed-shadow-hidden) от узла B, если выполняются все следующие условия:

Чтобы «перенацелить» (retarget) объект A на объект B, повторяйте эти шаги, пока они не вернут объект:

1. Если верно одно из следующих утверждений
   А не узел
   Корень A - это не теневой корень
   B - узел, а корень A - инклюзивный теневой предок B
затем верните A.
2. Установите A в качестве хоста корня A.

Примечание!

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

 

Ссылки

DOM стандарт — https://efim360.ru/dom/

Читайте перевод полной версии стандарта «объектной модели документа», чтобы ознакомиться со всеми концепциями и интерфейсами.

DOMLiving Standardhttps://dom.spec.whatwg.org

Читайте официальную документацию живого стандарта «объектной модели документа», чтобы быть в курсе последних изменений.

Поделись записью