【发布时间】:2011-11-12 21:08:36
【问题描述】:
我正在尝试在字符串中找到一个位置,以便使用 jQuery 将 <img> 标记附加到放置时。
我打算在悬停时将段落的 HTML 转换为字符串,或者可能是文本区域。
有没有办法将 HTML 附加到光标的位置?
【问题讨论】:
标签: javascript jquery string
我正在尝试在字符串中找到一个位置,以便使用 jQuery 将 <img> 标记附加到放置时。
我打算在悬停时将段落的 HTML 转换为字符串,或者可能是文本区域。
有没有办法将 HTML 附加到光标的位置?
【问题讨论】:
标签: javascript jquery string
使用 window.getSelection() 和 Range :
【讨论】:
如果给定X和Y坐标,则可以使用document.elementFromPoint(x, y)获取元素。否则,您可以使用this answer中描述的方法获取X和Y。
所以,给定 X 和 Y。那么:
function appendElementAt(img, x, y){
var elem = document.elementFromPoint(x, y);
var pos = elem.getBoundingClientRect(); //Calculate position of element
var topPos = y - pos.top; // Calculate top position
var leftPos = x - pos.left // Calculate left positon
elem.style.position = "relative";
img.style.position = "absolute";
img.style.top = topPos;
img.style.left = leftPos;
elem.appendChild(img);
}
// Usage:
var img = document.createElement("img");
appendElementAt(img, x, y);
【讨论】: