8

我想将元素放置在所选文本上方。但我无法弄清楚坐标。

var sel = document.getSelection();
  if(sel != null) {
    positionDiv();
}

示例:(图片)

替代文字

4

1 回答 1

4

这是基本的想法。您在选择的开头插入虚拟元素并获取该虚拟 html 元素的坐标。然后你删除它。

var range = window.getSelection().getRangeAt(0);
var dummy = document.createElement("span");
range.insertNode(dummy);
var box = document.getBoxObjectFor(dummy);
var x = box.x, y = box.y;
dummy.parentNode.removeChild(dummy);
于 2010-04-09T06:18:17.533 回答