0

我正在开发一个 Etherpad-lite 插件,在编写时提供特殊的自动完成功能。我正在尝试在用户写入时更新自动完成项目的列表。我的问题是 aceEditEvent 的 context.rep.selStart 和 context.rep.selEnd 中的插入符号位置仅在按键后的第一个 idleWorkTimer 事件中更新,为此目的有很大的延迟。

aceEditEvent 中的事件发生如下:

  1. handleKeyEvent - 立即出现(我猜是 keydown), content.rep在击键之前有选择
  2. handleKeyEvent - 立即出现(我猜是按键), content.rep在击键之前有选择
  3. handleKeyEvent - 立即出现(我猜是 keyup), content.rep在击键之前有选择
  4. idleWorkTimer - 带有长达 1s 的延迟,content.rep在击键后有选择

那么如何在没有延迟的情况下获得新的插入符号位置?

4

1 回答 1

0

答案在这里: https ://github.com/ether/etherpad-lite/issues/2015

基本上这个问题还没有解决。作为一种解决方法,可以在事件之后使用 setTimeout 来获得正确的插入符号位置。

于 2015-06-22T10:22:33.267 回答