Кратко
СкопированоСвойство composed
события возвращает булево значение, которое указывает, может ли событие пересекать границы Shadow DOM и распространяться в обычный DOM.
Пример
Скопировано<div id="open-shadow"></div><div id="closed-shadow"></div>
<div id="open-shadow"></div> <div id="closed-shadow"></div>
const openHost = document.getElementById('open-shadow');const openRoot = openHost.attachShadow({ mode: 'open' });openRoot.innerHTML = '<button>Открытый дом</button>';const closedHost = document.getElementById('closed-shadow');const closedRoot = closedHost.attachShadow({ mode: 'closed' });closedRoot.innerHTML = '<button>Закрытый дом</button>
const openHost = document.getElementById('open-shadow'); const openRoot = openHost.attachShadow({ mode: 'open' }); openRoot.innerHTML = '<button>Открытый дом</button>'; const closedHost = document.getElementById('closed-shadow'); const closedRoot = closedHost.attachShadow({ mode: 'closed' }); closedRoot.innerHTML = '<button>Закрытый дом</button>
Как пишется
Скопированоevent.composed
event.composed
Свойство доступно только для чтения и возвращает true
или false
.
Как понять
СкопированоСвойство composed
определяет поведение события при пересечении границ Shadow DOM:
true
— событие может пересекать границы Shadow DOM и распространяться в обычный DOMfalse
— событие останавливается на границе Shadow DOM
Все события пользовательского интерфейса (click
, touch
, mouseover
, copy
, paste
и др.) имеют composed
. Большинство других типов событий имеют composed
.
Распространение происходит только если свойство bubbles
также равно true
.
Подсказки
Скопировано💡 Все события пользовательского интерфейса автоматически имеют composed
.
💡 События, созданные программно, по умолчанию имеют composed
, если не указано иное.
💡 Используйте метод composed
для определения пути распространения события через Shadow DOM.
💡 Даже если composed
, события не могут проникнуть в закрытый Shadow DOM.
- Chrome 53, поддерживается
- Edge 79, поддерживается
- Firefox 63, поддерживается
- Safari 10, поддерживается