将光标位置设置为contenteditable div中的选定文本

时间:2011-07-07 07:06:55

标签: javascript text html cursor contenteditable

我有一个contenteditable的div标签,以便用户可以键入div。 如果用户选择一些文本使其变为粗体,则执行以下代码:

browser.execute("document.execCommand(\"Bold\"); 
document.getElementById(\"EditDIV\").focus()");  

执行后,焦点丢失,浏览器中的垂直滚动条移动到浏览器的顶部。 我希望光标停留在之前的文本中。

我尝试了以下内容:

存储选择位置x,y:

代码:

cursorPos=document.selection.createRange().duplicate(); clickx = cursorPos.getBoundingClientRect().left; clicky = cursorPos.getBoundingClientRect().top;

恢复选择位置:

代码:

cursorPos = document.body.createTextRange(); cursorPos.moveToPoint(clickx, clicky); cursorPos.select();

但是此代码在浏览器中查找所选文本相对于当前视图开头的位置。因此,光标停留在相同位置,但文本向下移动。

期望光标停留在所选的文本上。

0 个答案:

没有答案