真正的值被寫進一個 shadow root 裡。document.body.textContent 讀不到 shadow DOM 的內容——這不是 bug,是規範行為。
上面這個 <div id="host"> 在畫面上看起來是空的,但它掛了一個 shadow root,裡面有真正的內容。
textContent 的邊界 | document.body.textContent 或整頁純文字抽取,看不到 shadow DOM 裡的任何字——attachShadow 建立的內容不會出現在宿主元素的 textContent 裡。 |
|---|---|
| 需要穿透 shadow root | 唯一讀得到值的方式,是明確走訪 host.shadowRoot,這代表 DOM 抽取邏輯不能只做一層 querySelector。 |
| 用途很真實 | Web Component(<my-widget>)在真實電商站台很常見,價格、庫存常常就渲染在元件的 shadow DOM 裡。 |
unknown,而不去嘗試穿透 shadow DOM 的走訪方式。