如何从 shadow DOM (v1) 访问 currentScript

How to access currentScript from shadow DOM (v1)

我想从 shadowDOM 内部访问当前脚本或 shadow root。

并且,最终目的是在同一个 shadowDOM 中获取 div.target 元素。

我尝试使用 document.currentScript。 然而,它 returns null。 因此,我无法检测到我所在的 shadowDOM。

有办法吗?

<template id="template">
    <div class="target"></div>
    <script>
        // How to access self script element or above element which has target class?

        console.log(document.currentScript)
        // null
    </script>
</template>
<div class="sr"></div>

<script>
document.querySelector(".sr").attachShadow({mode: "open"}).append(
    document.querySelector("#template").content.cloneNode(true)
)
</script>

由于 this post 中指出的安全或实施限制,您不能这样做。

要访问 Shadow DOM,您应该使用 getRootNode(),如 中所述。