如何在按键后立即确定Etherpad中的插入位置?

时间:2015-06-19 09:00:21

标签: javascript etherpad

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

aceEditEvent中的事件发生如下:

  1. handleKeyEvent - 立即出现(对于keydown我猜),content.rep选择之前击键
  2. handleKeyEvent - 立即出现(对于按键我猜),content.rep选择之前击键
  3. handleKeyEvent - 立即出现(对于我猜的密钥),content.rep选择之前击键
  4. idleWorkTimer - 最多延迟1秒,content.rep选择 击键后
  5. 那么如何在没有延迟的情况下获得新的插入位置?

1 个答案:

答案 0 :(得分:0)

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

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