Как изменить сайт, который использует закрытый теневой дом? - PullRequest
0 голосов
/ 29 февраля 2020

Учитывая сайт, который использует веб-компоненты с закрытыми теневыми корнями, как мне получить доступ или изменить DOM из сценария расширения содержимого?

1 Ответ

0 голосов
/ 29 февраля 2020

Firefox 63 представил привилегированный метод доступа Element.openOrClosedShadowRoot ( документация MDN ), чтобы разрешить веб-расширениям получать доступ к теневым корням независимо от их открытого / закрытого состояния.

Другие API, такие как querySelectorAll, все еще подвержены влиянию изоляции теневого домена, поэтому для поиска теневых корней расширение должно пройти по всему дереву через NodeIterator или TreeWalker, чтобы проверить наличие теневых корней. Поскольку теневые корни могут быть присоединены к более поздним точкам расширений, возможно, придется также ждать изменений страницы с помощью наблюдателей мутаций, прежде чем пытаться получить доступ к теневой DOM, поэтому в целом этот подход менее эргономичен c, чем при использовании querySelector, но, по крайней мере, это возможно.

...