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");
};
}

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')

TA贡献1871条经验 获得超13个赞
只是一个简单的方法与jQuery:
复制div的全部内容
var oldhtml=$('#elementID').html();
var tobejoined='<span>hii</span>';
//element with new html would be
$('#elementID').html(oldhtml+tobejoined);
添加回答
举报