在contentEditable div中自动填充文本

时间:2014-05-28 09:31:11

标签: javascript html caret

我需要在contentEditable div上使用某种自动完成机制。因此,当键入" s"时,它将被更改为" Set"在弹出选择之后(非常像VS中的Intellisense),所以我需要两件事:

  1. 删除原始输入的字符串(我将单独跟踪此字符串)
  2. 在此特定位置插入新文字
  3. 我认为如果我可以在div innerHTML中得到插入位置,这将很容易,这样我就可以执行文本逻辑然后将html设置为div。但到目前为止我还没有找到如何实现这一目标。

2 个答案:

答案 0 :(得分:0)

您似乎需要使用文本选择功能,但这往往具有相当差的跨浏览器兼容性并且使用起来非常令人沮丧。值得研究使用像Rangy(https://code.google.com/p/rangy/)这样的库来标准化它。

那里的文档也应该是一个很好的起点,可以找到如何选择光标周围的文本,并执行选择的文本内容的替换。

答案 1 :(得分:0)

https://github.com/yuku-t/jquery-textcomplete/适用于contentEditable,并允许您在找到匹配项时运行挂钩。