2015-12-06 21 views
68

在谷歌瀏覽器的開發工具中,我看到一個#shadow-root正確的<html lang="en">標籤。它做什麼以及它用於什麼?我沒有在Firefox或IE中看到它;只有在Chrome中,這是一個特殊功能嗎?什麼是影子根

如果我打開它,它顯示<head><body>和鏈接旁邊名爲reveal,通過點擊,它指向的<head><body>,沒有別的。

回答

71

這是Shadow DOM存在的特殊指標。這些已經存在了多年,但直到最近,開發人員才從中獲得API。 Chrome已經有了這個功能一段時間了,其他瀏覽器仍然在趕上。可以在「元素」部分下的DevTools設置中進行切換。取消選中「顯示用戶代理Shadow DOM」。這至少會隱藏內部創建的任何Shadow DOM(如選擇元素)。如果影響用戶創建的元素(例如自定義元素),我不確定。

這些問題也出現在iframes之類的東西里面,其中有一個單獨的DOM樹嵌套在另一個DOM樹中。

Shadow DOM只是簡單地說,頁面的某個部分,其內部有其自己的 DOM。樣式和腳本可以在該元素中進行限定,因此只能在該邊界內執行。

這是Web Components工作所需的主要部件之一。這是一項允許開發人員構建自己的封裝組件的新技術,開發人員可以像使用任何其他HTML元素一樣使用它。

+0

所以這是一個明顯的問題是如何使用任何項目的創建自定義元素或Web組件?假設我正在使用聚合物... –