Ответ 1
Я понял это, наконец, понял.
В соответствии со спецификацией (рабочий проект) a ShadowRoot
имеет свойство только для чтения, называемое host
.
http://www.w3.org/TR/shadow-dom/#shadowroot-object
interface ShadowRoot : DocumentFragment {
...
readonly attribute Element host;
...
};
Вы можете добраться до теневого корня, подойдя к дереву DOM.
while(e.nodeType != 11) { // 11 = DOCUMENT_FRAGMENT_NODE
e = e.parentNode;
}
var hostElement = e.host
В моем случае это было проще, поскольку теневой корень был родительским node самого script.
document.currentScript.parentNode.host