Можно ли получить доступ к теневому домену SVG - PullRequest
0 голосов
/ 07 мая 2020

Вот svg с элементом использования:

<svg viewBox="0 0 30 10" xmlns="http://www.w3.org/2000/svg">
  <circle id="myCircle" cx="5" cy="5" r="4" stroke="blue"/>
  <use href="#myCircle" x="10" fill="blue"/>
</svg>

В инспекторе я вижу, что у элемента использования есть тень root:

<use href="#myCircle" x="10" fill="blue">
  #shadow-root (closed)
  <circle id="myCircle" cx="5" cy="5" r="4" stroke="blue"></circle>
</use>

Можно ли каким-то образом вызвать такие методы, как getBBox() на <circle> в теневом домике?

Если нет прямого пути, возможно, есть какой-то трюк, позволяющий мне получить доступ к закрытой тени root?

1 Ответ

0 голосов
/ 08 мая 2020

В этом случае это выглядит как no :

Если вы прикрепите тень root к настраиваемому элементу с установленным mode: closed, вы не будете возможность доступа к теневой DOM извне - myCustomElem.shadowRoot возвращает null. Это относится к встроенным элементам , которые содержат теневые DOM, например <video> [или svg].

Источник: https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM#Basic_usage

Поскольку веб-инспектор перечисляет тень root как закрытую, она недоступна через javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...