首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合物-如何获得在其阴影中包含我的组件的组件-DOM?

聚合物-如何获得在其阴影中包含我的组件的组件-DOM?
EN

Stack Overflow用户
提问于 2018-02-27 00:18:56
回答 1查看 45关注 0票数 0

如果我的组件被显式地放在了另一个shadow-dom组件中,如何获取这个组件呢?

例如:

EN

回答 1

Stack Overflow用户

发布于 2018-02-27 01:05:45

当你被放入父元素的阴影DOM中时,下面是一个获取父元素的通用方法。我没有添加任何错误检查,但如果你知道你在他们的阴影下,那么这就很好用了。

代码语言:javascript
复制
class OuterEl extends HTMLElement {
        constructor() {
          super();
          var root = this.attachShadow({mode:'open'});
          root.innerHTML = "<inner-el></inner-el>";
        }
      }

      class InnerEl extends HTMLElement {
        constructor() {
          super();
          var root = this.attachShadow({mode:'open'});
          root.innerHTML = `<button>Click</button><hr/><output></output>`;
          this.button = root.querySelector('button');
          this.output = root.querySelector('output');
          this.button.addEventListener('click', () => {
            let parentSrc = this.getRootNode();
            this.output.textContent = parentSrc.host.outerHTML;
          })
        }
      }

      customElements.define('outer-el', OuterEl);
      customElements.define('inner-el', InnerEl);
    </script>
代码语言:javascript
复制
<outer-el></outer-el>

神奇之处在于这个调用:

this.getRootNode().host

这将是具有您的组件所在的阴影DOM的元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48992702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档