【发布时间】:2011-02-06 00:03:06
【问题描述】:
我想将元素放置在所选文本上方。但我无法弄清楚坐标。
var sel = document.getSelection();
if(sel != null) {
positionDiv();
}
示例:(图片)
【问题讨论】:
-
请贴出具体答案的代码。
-
好的。更新了更多细节。
我想将元素放置在所选文本上方。但我无法弄清楚坐标。
var sel = document.getSelection();
if(sel != null) {
positionDiv();
}
示例:(图片)
【问题讨论】:
这是基本思想。您在选择的开头插入虚拟元素并获取该虚拟 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);
【讨论】:
document.getBoxObjectFor 是一个现已弃用的 Mozilla 扩展程序,并且从一开始就从未打算在网页中使用。
document.getBoxObjectFor 从 FF 3.6 开始完全消失。