在开启contenteditable可编辑div光标处插入图片

发布时间 2023-09-20 19:21:17作者: 奇迹之耀

  $("#Content").focus();

// 创建 img 元素
var img = document.createElement('img');
img.src = 'xxxx';
img.style.display = 'block';

// 插入 img 元素
if (window.getSelection) {
var editableDiv = document.getElementById('Content')
var selection = window.getSelection();
var range = selection.getRangeAt(0);
// 判断光标位置是否在 img 元素之前,防止将新img插入到旧img标签内部
if (range.startContainer.tagName.toLowerCase() === 'img') {
var previousImg = range.startContainer;
editableDiv.insertBefore(img, previousImg.previousSibling);
} else {
range.insertNode(img);
}

// 将光标移到新插入的 img 下一行的首位
var newRange = document.createRange();
newRange.setStartAfter(img);
newRange.collapse(true);

// 清空之前的选区并设置新的选区
selection.removeAllRanges();
selection.addRange(newRange);
}

$("#Content").focus();