当存在 IMG 元素时,如何设置插入符号位置
How to set the caret position when there is an IMG element?
我有一个内容可编辑的div,如下所示:
<div contenteditable="true">test1<img src="img.jpg"></img>test2</div>
现在,如果我在位置 5 上设置插入符号,我会得到这个(垂直线是下面代码中的插入符号):
<div contenteditable="true">test1|<img src="img.jpg"></img>test2</div>
如果我将插入符号设置在位置 6 上,我会得到这个:
<div contenteditable="true">test1<img src="img.jpg"></img>t|est2</div>
如何在 IMG 元素旁边设置插入符号?我想得到这样的东西:
<div contenteditable="true">test1<img src="img.jpg"></img>|test2</div>
当div 有内容:"之前<img>
之后"时,那么基本上里面有 3 个元素:0.text:"在 ", 1.img, 2.text: "之后",你想在 #2 的开头:
function setCaretPositionAfter1stImg(elemId) {
var el = document.getElementById(elemId);
if(el != null) {
el.focus();
var range = document.createRange();
var sel = window.getSelection();
range.setStart(el, 2);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
}
setCaretPositionAfter1stImg("ed");
<div contenteditable="true" id="ed">test1<img src="img.jpg"/>test2</div>
相关文章:
- 内容可编辑DIV单击/插入符号设置
- 在不使用javascript的情况下,可以在表单字段中设置文本占位符(以提示最终用户插入特定格式)
- 等值线缺省值在插入 db 之前不设置该值
- 是否可以设置柔盒插入、移除和项目位置的动画
- 如何使用javascript获取&使用字符偏移量设置插入符号位置
- 为插入到Shadow DOM中的内容设置样式
- JavaScript:将插入符号位置设置为第一段的开头(Opera bug)
- 反应:使用危险设置内部HTML插入时脚本标记不起作用
- 如何在焦点上垂直设置文本区域/输入中间的默认光标插入符号
- 将 Javascript 代码插入 ScriptElement 以设置 Window vars
- 当存在 IMG 元素时,如何设置插入符号位置
- 使用jQuery设置插入元素的动画
- 可以't在使用node js将动态字段值插入mysql DB时,在发送头之后设置头
- 在Froala 2中的内容末尾设置插入符号
- 从当前鼠标位置设置内容可编辑插入符号位置
- 设置文本区域's使用x和y位置的插入符号位置
- 设置插入符号在内容可编辑元素中的位置
- 如何在可编辑框架上设置插入符号的位置
- 如何在可满足的子节点中设置插入符号位置
- 在AngularJS中设置插入符号的位置