В chrome следующий элемент ввода можно перетащить в нижнюю область ввода.
Я ожидаю такого поведения.
<input type="file" class="input-file">
<style>
.input-file {
display: block;
width: 300px;
height: 300px;
border: 1px solid red;
margin: 10px;
}
</style>
Однако в Shadow DOM все по-другому.
Следующий элемент ввода можно перетаскивать только на кнопку «Выбрать файл», расположенную в левой верхней области ввода.
Выброшенный файл не выбирается, когда файл сбрасывается в нижнюю область ввода.
customElements.define("foo-bar", class extends HTMLElement {
constructor(){
super()
this.attachShadow({mode: "open"}).innerHTML = `
<input type="file" class="input-file">
<style>
.input-file {
display: block;
width: 300px;
height: 300px;
border: 1px solid red;
margin: 10px;
}
</style>
`
}
})
document.body.innerHTML = "<foo-bar></foo-bar>"
Я думаю, что это ошибка, вызванная тем, что за пределами Shadow DOM не уведомляются события.
Есть ли обходной путь?