美文网首页
输入框光标处添加指定内容

输入框光标处添加指定内容

作者: 清霆 | 来源:发表于2023-04-26 16:46 被阅读0次
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8" />
        <title>输入框光标处添加指定内容</title>
        <script>
          function handleClick() {
            // 指定输入框
            const editor = document.querySelector('#editor');
            // 设置要插入的内容
            const textNode = document.createTextNode('hello word');
            const selection = getSelection();
            let range;
            // 判断是否有range以及range是否为指定元素
            if (
              selection.rangeCount <= 0 ||
              ((range = selection.getRangeAt(0)) &&
                range.commonAncestorContainer !== editor &&
                range.commonAncestorContainer.parentElement !== editor)
            ) {
              // 如果没有
              range = document.createRange();
              // 设置rang位置
              range.selectNodeContents(editor);
              // 设置rang到边界点之一 false 节点末 true 节点始
              range.collapse(false);
              // 将rang 添加到selection
              selection.addRange(range);
            } else {
              // 如果有
              range = selection.getRangeAt(0);
              // 先删除文本再添加
              range.deleteContents();
            }
            // 插入文本
            range.insertNode(textNode);
            // 将光标位置移到新添加文本后面
            selection.collapseToEnd();
          }
        </script>
      </head>
      <body>
        <div contenteditable id="editor">are you ok</div>
        <button onclick="handleClick()">点击</button>
      </body>
    </html>
    
    

    参考文档 输入框光标处添加指定内容 - 掘金 (juejin.cn)

    相关文章

      网友评论

          本文标题:输入框光标处添加指定内容

          本文链接:https://www.haomeiwen.com/subject/hjbvjdtx.html