Skip to content

Instantly share code, notes, and snippets.

@lirongfei123
Last active March 8, 2019 08:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lirongfei123/4f4debb067bc81419b83af5a74551996 to your computer and use it in GitHub Desktop.
Save lirongfei123/4f4debb067bc81419b83af5a74551996 to your computer and use it in GitHub Desktop.
选区操作 #js
var range = window.getSelection().getRangeAt(0);
var preCaretRange = range.cloneRange();
// console.log(range.startOffset);
const startOffset = range.startOffset;
preCaretRange.setStart(range.startContainer, startOffset);
preCaretRange.setEnd(range.endContainer, startOffset + 1);
const caretOffset = preCaretRange.toString();
console.log(caretOffset);
var range = window.getSelection().getRangeAt(0);
var preCaretRange = range.cloneRange();
// console.log(range.startOffset);
const start = range.startOffset;
let authorTextElem = range.endContainer;
preCaretRange.setStart(range.startContainer, 0);
preCaretRange.setEnd(range.endContainer, preCaretRange.endOffset);
let text = preCaretRange.toString();
while (authorTextElem.previousSibling && authorTextElem.previousSibling.nodeType === 3 && text.indexOf('@') === -1) {
    authorTextElem = authorTextElem.previousSibling;
    text = authorTextElem.nodeValue + text;
}
console.log(text);
const selection = document.getSelection();
const oRange = selection.getRangeAt(0); //get the text range
const oRect = oRange.getBoundingClientRect();
var el = document.getElementById("editable");
var range = document.createRange();
var sel = window.getSelection();
range.setStart(el.childNodes[2], 5);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment