У меня на сайте установлен веб-компонент Angular. Он использует Shadow DOM, поэтому он очень быстрый (что и должно быть в моем случае).
На моем сайте у меня также есть ярлык на h , который открывает всплывающее окно, отображающее некоторую полезную информацию. Обязательно, чтобы эта h оставалась без изменений. Пример кода того, как это было реализовано, можно увидеть здесь: https://jsfiddle.net/js1edv37/
Это простой прослушиватель событий, который прослушивает document
:
$(document).on("keyup", function(e) {
}
Однако это также срабатывает, когда мой веб-компонент имеет фокусированные элементы textarea
или input
. Это происходит потому, что он использует Shadow DOM, к которому скрипт извне не может получить доступ.
Вы можете проверить это, нажав h на клавиатуре внутри и снаружи элементов input
и textarea
.
Есть ли способ разрешить моему скрипту извне веб-компонента Shadow DOM по-прежнему прослушивать событие keyup
, но заставить его прослушивать всех элементов на странице? Даже те, что находятся в Shadow DOM.