DIV 粘贴插入文本或者其他元素后,移动光标到最新处

此文主要是可编辑div光标位置处理

1:首先 设置一个可编辑的DIV,注意:设置 contenteditable="true" 才可以编辑DIV

 <div id="talkContent" style="resize: none;height:150px;overflow:auto" contenteditable="true"></div>

2:移动光标js方法

//聊天内容框 插入文本或者其他元素后,移动置光标到最新处
function insertHtmlAtCaret(childElement) {
    var sel, range;
    if (window.getSelection) {
        // IE9 and non-IE
        sel = window.getSelection();
        if (sel.getRangeAt && sel.rangeCount) {
            range = sel.getRangeAt(0);
            range.deleteContents();

            var el = document.createElement("div");
            el.appendChild(childElement);
            var frag = document.createDocumentFragment(), node, lastNode;
            while ((node = el.firstChild)) {
                lastNode = frag.appendChild(node);
            }

            range.insertNode(frag);
            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().pasteHTML(html);
    }
}

3:从光标现在的位置追加文本,成功后,光标在追加的文本后面

    insertHtmlAtCaret(document.createTextNode(‘这里是要追加的文本’));

4:从光标现在的位置追加元素,成功后,光标在追加的元素后面

  var new_img = document.createElement('img');
    new_img.setAttribute('src', '这是图片地址');
    new_img.style.maxWidth = "200px";
    new_img.style.maxHeight = "120px";
    insertHtmlAtCaret(new_img);

 

转载于:https://www.cnblogs.com/fj99/p/5499113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值