[英]How to set the caret position when there is an IMG element?
I have a content editable div like this: 我有一个像这样的内容可编辑div:
<div contenteditable="true">test1<img src="img.jpg"></img>test2</div>
Now, if I set the caret on position 5, I get this (the vertical line is the caret in the code below): 现在,如果我将插入符号设置在第5位,我得到了这个(垂直线是下面代码中的插入符号):
<div contenteditable="true">test1|<img src="img.jpg"></img>test2</div>
and if I set the caret on position 6, I get this: 如果我把插入符号放在第6位,我会得到这个:
<div contenteditable="true">test1<img src="img.jpg"></img>t|est2</div>
How can I set the caret right next to the IMG element? 如何在IMG元素旁边设置插入符号? I want to get something like this:
我想得到这样的东西:
<div contenteditable="true">test1<img src="img.jpg"></img>|test2</div>
When the div has the content: "before <img>
after", then basically there are 3 elements in it: 0.text:"before ", 1.img, 2.text: " after", and you want to be at the beginning of the #2: 当div有内容时:“在
<img>
之后”,那么基本上它有3个元素:0.text:“before”,1.img,2.text:“after”,你想要在#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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.