繁体   English   中英

如何使用Shadow DOM v1从阴影根目录中访问主机元素?

[英]How to access host element from within the shadow root using Shadow DOM v1?

给定阴影根中包含的元素,如何获取承载所述阴影根的元素? 有没有一种方法可以实现这一点,无论元素在树中的位置(即给定对element2element3的引用,获取对element1的引用)?

element1
└ #shadow-root
  └ element2
    └ element3

对于Shadow DOM v1,您可以使用getRootNode()方法。

然后获取host属性:

event.target.getRootNode().host

您可以继续迭代parentNode直到获得影子根,然后获取host

function getHostElement(el) {
  while (el.parentNode) el = el.parentNode;
  return getShadowRoot(el).host;
}
var element1 = document.createElement('element1');
var element2 = document.createElement('element2');
var element3 = document.createElement('element3');
element2.appendChild(element3);
var shadowRoot = element1.createShadowRoot();
shadowRoot.appendChild(element2);
getHostElement(element3); // element1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM