【发布时间】:2012-09-03 10:18:46
【问题描述】:
我有一个标准的内容可编辑 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();
此代码将设置它,但获取它似乎是问题..
【问题讨论】:
标签: javascript jquery cursor dom-events contenteditable