我正在用 UIWebview 制作一个富文本编辑器,它使用一个contentEditable
div。我想以像素为单位获取插入符号的位置。我搜索了很多,我得到了下面的代码。
function getCaretClientPosition() {
var x = 0, y = 0;
var sel = window.getSelection();
if (sel.rangeCount) {
var range = sel.getRangeAt(0);
if (range.getClientRects) {
var rects = range.getClientRects();
if (rects.length > 0) {
x = rects[0].left;
y = rects[0].top;
}
}
}
return { x: x, y: y };
}
在我输入换行符之前,上面的代码运行良好。sel.getRangeAt(0)
返回 null,因此该函数无法返回正确的插入符号 Y 像素。