我有一个可内容编辑的 div,我需要获取当前选择(即插入符号)的 x 和 y 位置(以像素为单位)。我现在拥有的是一种获取相对于窗口的选择的方法,即window.getSelection()
. 我发现的是返回相对于 div 节点的偏移位置的方法。
您对此或插件有任何想法吗?我找到了返回相对于文本区域的光标位置的插件,但不幸的是,它不适用于内容可编辑的 div。
这是我现在拥有的代码:
function getSelectionCoords() {
var sel = document.selection, range;
var x = 0, y = 0;
if (sel) {
if (sel.type != "Control") {
range = sel.createRange();
range.collapse(true);
x = range.boundingLeft;
y = range.boundingTop;
}
} else if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(0).cloneRange();
if (range.getClientRects()) {
range.collapse(true);
var rect = range.getClientRects()[0];
x = rect.left;
y = rect.top;
}
}
}
return { x: x, y: y };
}
谢谢你的帮助。