摘要
我想获取插入符号(光标)的窗口位置(以像素为单位),用于当用户开始输入时。
完整故事
有一个多行的 contentEditable
元素,其中包含复杂的 HTML 结构。当用户在其中任何地方开始输入时,在第一次按键时,我想在插入符号下方放置一个absolute
定位的元素。新添加的元素必须注入到<body>
标签中,而不是作为contentEditable
元素内的DOM节点。
因此,我需要插入符号的确切全局坐标。 我将明确表示没有文本选择,选择在这里无关紧要且不太可能出现。
我的代码
通常问题应该包括一些 OP 已尝试但需要帮助的代码,但在这种情况下,我已经无计可施了。 input
DOM 事件不会公开坐标。 我至少提供了我所需的结果:
.info{
border: 1px solid gold;
padding: 8px;
background: rgba(255,255,224, .8);
position: absolute;
z-index: 9999;
max-width: 180px;
}
<h2>contentEditable:</h2>
<div contentEditable>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<strong>Ut enim ad minim veniam</strong>,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</p>
<p>
Imagine the caret is somewhere here and the info element is right under it... <div>reprehenderit <em>in</em> voluptate</div>
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt <small>mollit anim</small>
id est laborum.
</p>
</div>
<div class='info' style='top:150px; left:60px;'>Extra info with a long list of some content goes here</div>
免责声明:
我已经进行了相当多的调查,但不幸的是没有找到答案。有些问题看起来很相似,但深入研究后发现它们根本不同,而有些则非常古老和过时。
谢谢!