【发布时间】:2018-05-01 05:06:16
【问题描述】:
我想为文本区域中的电子邮件创建一种提前输入机制。
如果我在 textarea 中键入,控件将自动换行文本,因此我知道光标当前在哪里(即它的 x、y 位置)取决于这些换行符发生的位置。 (选择位置就是光标所在位置的字符数。)
我需要 x any y 位置,以便可以将可能的完成列表定位在光标下方。
有没有办法从控件中提取这个换行信息,或者我必须修改它并执行“滚动你自己的”文本换行算法(这很棘手,因为测量文本宽度并不容易在javascript中。)
任何帮助将不胜感激。
【问题讨论】:
-
很少有办法做到这一点。将文本复制到隐藏或关闭的视口
div并获取它的宽度。如果div的宽度大于文本字段的宽度,您就知道文本将换行。您的 Y 将增加line-height。对每一行重复,然后您也可以检测最后 X 的行宽。不是很容易,但可能会工作。
标签: javascript textarea selection