Range:cloneContents() 方法
Range 介面的 cloneContents() 方法會複製範圍的 commonAncestorContainer 的所選 Node 子項,並將它們放入一個新的 DocumentFragment 物件中。
節點使用與 Node.cloneNode() 相同的演算法進行克隆,這意味著透過指令碼附加的事件監聽器不會被克隆。HTML id 屬性會被克隆,這可能導致克隆後文檔無效。
commonAncestorContainer 的第一個和最後一個被選中的子項可能是部分選中的。在這種情況下,子節點本身會被克隆,但其內容僅限於被選中的部分,這是透過遞迴克隆原始範圍的開始/結束邊界與該子節點的結束/開始邊界之間的範圍來實現的。
<p>paragraph 1</p><p>paragraph 2</p><p>paragraph 3</p>
^----------- selection ------------^
cloneContents() returns:
<p>graph 1</p><p>paragraph 2</p><p>para</p>
語法
js
cloneContents()
引數
無。
返回值
一個 DocumentFragment 物件。
示例
js
range = document.createRange();
range.selectNode(document.getElementsByTagName("div").item(0));
documentFragment = range.cloneContents();
document.body.appendChild(documentFragment);
規範
| 規範 |
|---|
| DOM # dom-range-clonecontents |
瀏覽器相容性
載入中…