在contenteditable容器中将内容插入光标处
时间: 2024-01-01 20:18:01 浏览: 103
在contenteditable容器中将内容插入光标处,可以通过以下步骤实现:
1. 首先,获取要插入内容的父容器,例如一个div元素,可以使用如下代码获取:
```javascript
var container = document.getElementById("container");
```
2. 然后,获取当前光标的位置,可以使用如下代码获取:
```javascript
var selection = window.getSelection();
var range = selection.getRangeAt(0);
```
3. 接下来,创建要插入的节点或者文本,例如一个span元素,可以使用如下代码创建:
```javascript
var node = document.createElement("span");
node.innerHTML = "要插入的内容";
```
或者直接创建一个文本节点:
```javascript
var textNode = document.createTextNode("要插入的内容");
```
4. 最后,将节点或文本插入到光标所在位置,可以使用如下代码将节点或文本插入到range的起始位置:
```javascript
range.insertNode(node);
```
或者直接将文本插入到range的起始位置:
```javascript
range.insertNode(textNode);
```
完整的代码示例:
```javascript
var container = document.getElementById("container");
var selection = window.getSelection();
var range = selection.getRangeAt(0);
var node = document.createElement("span");
node.innerHTML = "要插入的内容";
range.insertNode(node);
```
或者:
```javascript
var container = document.getElementById("container");
var selection = window.getSelection();
var range = selection.getRangeAt(0);
var textNode = document.createTextNode("要插入的内容");
range.insertNode(textNode);
```
阅读全文