我有一个标准的内容可编辑 div:
<div id="profileBody" class="customInputDiv" contentEditable='true' autocomplete="off"></div>
基本上我想检测光标在某个事件上的下落(最好是有效的代码onclick
,keydown
或在按钮上)。
像这样:
onkeydown
- 在 div 中保存插入符号位置,然后设置插入符号位置。
这听起来有点傻,但这是必需的,因为在某些事件中我会稍微更改内容,并且在更改光标位置时会非常烦人。
我讨厌在没有我尝试过的示例的情况下提出问题,但是如果您阅读以前的问题,我总是会非常详细地提供我尝试过的内容,只是在这里遇到了死胡同!
function setCaret() {
var el = document.getElementById("editable");
var range = document.createRange();
var sel = window.getSelection();
range.setStart(el.childNodes[2], 5);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
el.focus();
}
也许是解析数据的好方法window.getSelection();
?
找到: http: //jsfiddle.net/s5xAr/3/ 但我不想要 -- 只是希望它使用函数获取插入符号位置并设置它,例如
getCaretPOS();
//do something
setCaretPOS();
此代码将设置它,但获取它似乎是问题..