2

我试图在用户写作时获得插入符号的绝对定位。

我知道 document.caretRangeFromPoint(e.clientX, e.clientY),但是如果事件是按键,则 e.clientX, e.clientY 是未定义的。我做了一个 jsfiddle,很明显鼠标单击带有此信息,而按键上的事件则没有。

var test = function(e) {
   var output;
   var el = document.getElementById("test");
   var range = window.getSelection().getRangeAt(0);
   var positionToUse = document.caretRangeFromPoint(e.clientX, e.clientY);

   output = "Caret char pos: " + getCharacterOffsetWithin(range, el) + "<br>Position Pixels: " + e.clientX + " " + e.clientY
+ "<br>Position Pixels 2: " + e.target.offsetLeft + " " + e.target.offsetTop;

   document.getElementById("output").innerHTML = output;
   //positionToUse.insertNode(document.createElement('span'));
};

window.onclick = test;
window.onkeyup = test;

完整代码位于http://jsfiddle.net/NicoD/cgfHV/

你知道一些带有插入符号位置的事件吗?

谢谢

4

0 回答 0