【问题标题】:How to determine caret position in Etherpad immediately after keypress?如何在按键后立即确定 Etherpad 中的插入符号位置?
【发布时间】:2015-06-19 09:00:21
【问题描述】:

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

aceEditEvent 中的事件发生如下:

  1. handleKeyEvent - 立即出现(我猜是 keydown),content.rep 有选择 before 击键
  2. handleKeyEvent - 立即出现(我猜是按键),content.rep 有选择 before 击键
  3. handleKeyEvent - 立即出现(我猜是 keyup),content.rep 有选择 before 击键
  4. idleWorkTimer - 延迟时间最长为 1 秒,content.rep 有选择 after 击键

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

【问题讨论】:

    标签: javascript etherpad


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 2020-08-17
      • 2018-09-14
      相关资源
      最近更新 更多