20

我想在 a 中显示一个下拉列表,<textarea>以帮助用户输入某些内容。您从当前的 IDE 中知道这一点是代码完成。当您开始输入内容时,将在当前光标/插入符号位置右侧出现一个弹出窗口,您可以使用箭头键导航它以完成文本输入。

我知道如何获取文本字符串中的光标位置(即光标位置的字符索引),但我不知道如何获取元素内光标的 X/Y 坐标(类似于offsetWidthand offsetHeight),<textarea>以便我可以将我的列表元素放在那里。这在 HTML/JavaScript 中是否可行,它是如何工作的?

4

1 回答 1

2

使用可编辑的 html 输入(在CKeditor富文本编辑器之类的 iframe 中,甚至更好:jsfiddle)您可以在插入符号位置插入一个空的 span 元素并获取该元素的位置以显示您的下拉菜单。

它可能看起来很复杂,但我想不出任何其他方法来做到这一点。

当用于代码编辑器时,它有一些额外的可能性,您可以像 jsfiddle 那样对文本和格式代码进行颜色编码,甚至可以为关键字等构建某种代码自动完成功能。

于 2011-08-05T12:45:09.517 回答