为了账号安全,请及时绑定邮箱和手机立即绑定

在内容可编辑div中的光标处插入文本

在内容可编辑div中的光标处插入文本

宝慕林4294392 2019-12-16 10:41:12
我有一个contenteditable div,需要在插入符号的位置插入文本,这可以通过IE在IE中轻松完成  document.selection.createRange().text = "banana" 在Firefox / Chrome中有类似的实现方式吗?在内容可编辑div中的光标处插入文本
查看完整描述

4 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

使用获取选择对象window.getSelection()。

使用Selection.getRangeAt(0).insertNode()添加textnode。

如有必要,使用将光标移动到添加的文本后面Selection.modify()。(未标准化,但Firefox,Chrome和Safari支持此功能)


function insertTextAtCursor(text)

{

    let selection = window.getSelection();

    let range = selection.getRangeAt(0);

    range.deleteContents();

    let node = document.createTextNode(text);

    range.insertNode(node);


    for(let position = 0; position != text.length; position++)

    {

        selection.modify("move", "right", "character");

    };

}


查看完整回答
反对 回复 2019-12-16
?
12345678_0001

TA贡献1802条经验 获得超5个赞

// <div contenteditable id="myeditable">

// const editable = document.getElementById('myeditable')

// editable.focus()

// document.execCommand('insertHTML', false, '<b>B</b>anana')

document.execCommand('insertText', false, 'banana')


查看完整回答
反对 回复 2019-12-16
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

只是一个简单的方法与jQuery:


复制div的全部内容


var oldhtml=$('#elementID').html();


var tobejoined='<span>hii</span>';


//element with new html would be


$('#elementID').html(oldhtml+tobejoined);


查看完整回答
反对 回复 2019-12-16
  • 4 回答
  • 0 关注
  • 420 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号