返回一個?Selection?對象,表示用戶選擇的文本范圍或光標的當前位置。
const selection = window.getSelection()
1.toString()??
//光標選中的文本
const selectedText = selection.toString()
2.getRangeAt()
//返回一個包含當前選區內容的區域對象。
selection.getRangeAt()//參數:index
/*該參數指定需要被處理的子集編號(從零開始計數)。如果該數值被錯誤的賦予了大于或等于 rangeCount 結果的數字,將會產生錯誤。*/if(selection.value.rangeCount > 0){
/*返回選區開始的節點(Node) 因為通常情況下用戶只能選擇一個范圍,所以只有一個選區(range),此方法一般為getRangeAt(0),其中包括了光標選擇的起始位置和終止位置信息 */const range = selection.value.getRangeAt(0)
} //起始位置 & 結束位置
const { startOffset,endOffset } = range//移除選區中的內容
range.deleteContents();
//將新的dom元素插入選區
range.insertNode(element);
// 移除所有選區內容
selection.removeAllRanges();
// 重設選區
selection.addRange(range)
//獲取選區所處的元素
const element = range.commonAncestorContainer
//使用時可以判斷是否具有父節點
const element = range.value.commonAncestorContainer;
// 過濾不是元素節點的情況
if(element.nodeType === Node.ELEMENT_NODE) {node.value = element
}else {node.value = element.parentElement
}