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

Javascript 如何在按键后立即确定插入符号在Etherpad中的位置?,javascript,etherpad,Javascript,Etherpad,我正在开发一个Etherpad lite插件,在编写时提供特殊的自动完成功能。我试图在用户写入时更新自动完成项目的列表。我的问题是,aceEditEvent的context.rep.selStart和context.rep.selEnd中的插入符号位置仅在按键后的第一个idleWorkTimer事件中更新,这会造成很大的延迟 aceEditEvent中的事件如下所示: handleKeyEvent-立即出现(对于keydown,我猜是这样),content.rep在击键之前有一个选择 handl

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

aceEditEvent中的事件如下所示:

  • handleKeyEvent-立即出现(对于keydown,我猜是这样),content.rep在击键之前有一个选择
  • handleKeyEvent-立即出现(我猜是按键),content.rep在按键之前有选择
  • handleKeyEvent-立即出现(我想对于keyup),content.rep在击键之前有选择
  • idleWorkTimer-延迟最长为1s,content.rep在按键后可选择
  • 那么,如何在没有延迟的情况下获得新的插入符号位置呢?

    答案如下:

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