返回一个 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
}