「高级前端开发工程师教你使用JS插入光标位置的文字」

16 min read

可以通过以下方法在光标位置插入文字:

function insertTextAtCursor(text) {
  var sel, range, textNode;
  if (window.getSelection) {
    sel = window.getSelection();
    if (sel.getRangeAt && sel.rangeCount) {
      range = sel.getRangeAt(0);
      range.deleteContents();
      textNode = document.createTextNode(text);
      range.insertNode(textNode);
      range.setStart(textNode, 0);
      range.setEnd(textNode, textNode.length);
      sel.removeAllRanges();
      sel.addRange(range);
    }
  } else if (document.selection && document.selection.createRange) {
    range = document.selection.createRange();
    range.text = text;
  }
}

调用该方法时,需要传入需要插入的文本作为参数:

insertTextAtCursor("需要插入的文本");