Open FrankKai opened 5 years ago
window.getSelection()
获得用来检查和修改的Selection对象。document.createRange()
新建一个Range对象。selection.getRangeAt()
或者document.caretRangeFromPoint
查询到Range对象。insertNode()
selectNode(node) 当前node的父节点作为range的startContainer和endContainer。
collapse(toStart) 折叠,传true折叠到Range的起点;传false折叠到Range的终点。调用selectNode()后collapsed是true,不调用是false。
createContextualFragment(tagString) 创建DOM片段。这个方法会把range起点当作上下文节点,调用HTML fragment 解析算法或者XML语法解析算法,tagString包含了文本和标签然后把它转换成文档的片段。
setStart(startNode, startOffset)设置一次选择的Range的起点,可以是NodeList也可以是textNode。
setEnd(endNode, endOffset)设置一次选择的Range的终点,可以是NodeList也可以是textNode。
setStartAfter() 设置Range相对于Node的开始位置。
setEndAfter() 设置Range相对于另一个Node的结束位置。
在开发富文本编辑器“光标位置处插入表情”功能时,用到了一个很关键的
window.getSelection().getRangeAt(0)
用来记录光标的位置,这里涉及到两个很关键的对象: