как сделать запросВыбрать из теневого корня, который был создан в закрытом режиме - PullRequest
1 голос
/ 07 мая 2019

У меня есть теневой корень, который был создан с помощью mode: closed

<session-expiration-popup>
  #shadow root (closed)
  <div class="custom-element-root">
    something
  </div>
</session-expiration-popup>

Есть ли способ querySelect что-то из этого теневого корня?

Я пытался

const el = document.querySelector('session-expiration-popup')
el.shadowRoot.querySelector(".custom-element-root");

, однако, это не работает, потому что shawRoot параметр равен null для mode: close

Кроме того, я пытался el.attachShadow({ mode: "open" })но это также неправильный путь, который приводит к исключению (для элемента el существует теневой корень).

У вас есть другие идеи?

1 Ответ

2 голосов
/ 07 мая 2019

Это невозможно.Это предполагаемое поведение и цель закрытого Shadow DOM.

Единственный обходной путь - перегрузить метод attachShadow(), а затем вместо этого создать открытый Shadow DOM при вызове метода.

Пример в этом сообщении.

...