tre*_*eno 7 html shadow-dom custom-element
我想在使用 shadow DOM 的自定义元素中使用带有哈希 URL 的锚元素。我希望浏览器向下滚动到该锚点,但它没有这样做(至少是 Chrome)。
细节:
我有一个像这样的 index.html:
...
<a href="#destinationInsideShadowDOM">Jump</a>
...
<my-custom-element></my-custom-element>
...
Run Code Online (Sandbox Code Playgroud)
另一个用于自定义元素的 html 文件,其中包含锚点:
<template id="my-custom-element">
...
<a id="destinationInsideShadowDOM"></a>
...
</template>
Run Code Online (Sandbox Code Playgroud)
当我单击 index.html 中的链接时,我希望浏览器向下滚动到该锚点。
当我将锚点移动到自定义元素之外的 index.html 时,它可以工作,但不能在内部使用。
进入控制台并输入以下内容:
document.getElementById('destinationInsideShadowDOM')
Run Code Online (Sandbox Code Playgroud)
结果是null
因为具有该 ID 的元素不属于该文档。它属于自定义元素的shadowRoot。
正如 @treeno 在评论中提到的,您可以使用Element.scrollIntoView()来获得您想要的行为。