上标签键盘事件的preventDefault连续打字期间复位光标位置

问题描述 投票:0回答:1

用的preventDefault标签keydown事件复位光标位置时启动标签是最后在一系列连续击键

我有写在反应过来这里我重写标签行为铬的Gmail扩展。的preventDefault和stopImmediatePropagation在事件监听器似乎只有工作的时候标签是光标闪烁中唯一的键盘事件点击。如果标签是在连续的一系列按键按下的最后一个字符,光标复位到的消息的开始,尽管该事件仍然有它的默认阻止。此行为是只为tab键 - 例如防止“Q”的时候,同样的事件侦听器工作正常。标签预防似乎只工作,如果我注重的preventDefault后CONTENTEDITABLE

  public componentDidMount () {
    const { el } = this.props.editable;
    el.addEventListener("keydown", this.testKeys.bind(this), true);
  };

  private testKeys (e:KeyboardEvent) {
    if (e.key === "Tab") {
      console.log("tab");
      e.preventDefault();
      e.stopImmediatePropagation();
      this.props.editable.el.focus();
    } 
  }

如何保持,即使标签是最后一系列击键的正确光标位置?

javascript reactjs events gmail preventdefault
1个回答
0
投票

弄清楚了:

Gmail的高度重视自身的侦听器标签的keydown事件的preventDefault()和焦点更改到下一个元素,在该窗口的水平。为了赶上事件首先你需要设置你的事件监听捕获窗口:真。

© www.soinside.com 2019 - 2024. All rights reserved.