设置contenteditable的元素获取焦点设置光标位置在末尾

代码如下

设置contenteditable的容器

设置光标位置的方法

focusHandler() {
      this.$refs.editor.focus()

      // 设置光标位置
      if (window.getSelection) {
        let sel = window.getSelection();    
        let range = sel.getRangeAt(0);
        // IE9 and non-IE
        if (sel.getRangeAt && sel.rangeCount) {
          let el = this.$refs.editor;
          let frag = document.createDocumentFragment(), node, lastNode;
          while ((node = el.firstChild)) {
            lastNode = frag.appendChild(node);
          }
          range.insertNode(frag);
          // Preserve the selection
          if (lastNode) {
            range = range.cloneRange();
            range.setStartAfter(lastNode);
            range.collapse(true);
            sel.removeAllRanges();
            sel.addRange(range);
          }
        }
      } else if (document.selection && document.selection.type != "Control") {
        // IE < 9
        document.selection.createRange();
      }
    },

你可能感兴趣的:(javascript)