contenteditable内容中有其他html元素时,在指定位置插入内容
时间: 2024-03-11 08:49:05 浏览: 102
如果 contenteditable 内容中有其他 HTML 元素,可以使用 Range API 在指定位置插入内容。下面是一段示例代码,可以插入一段 HTML 到 contenteditable 的 div 中指定位置:
```javascript
// 在指定位置插入内容
function insertHtmlAtPosition(element, html, pos) {
var range, node;
if (document.createRange) {
range = document.createRange();
range.setStart(element.childNodes[0], pos);
range.collapse(true);
node = range.createContextualFragment(html);
element.insertBefore(node, element.childNodes[pos]);
} else if (document.selection) {
range = document.body.createTextRange();
range.moveToElementText(element);
range.moveStart("character", pos);
range.collapse(true);
range.pasteHTML(html);
}
}
```
其中,`insertHtmlAtPosition()` 函数需要传入 contenteditable 的 div 元素、要插入的 HTML 内容以及要插入的位置作为参数。需要注意的是,这个函数使用 Range API 来插入 HTML 内容,如果浏览器不支持 Range API,可以使用 document.selection 来实现插入。
阅读全文