TinyMCE 快捷方式 - 自定义快捷方式似乎相互覆盖

TinyMCE Shortcuts - Custom shortcuts appear to be overwriting each other

我看到过很多关于 TinyMCE 快捷方式的问题,但没有像这样的。

我有这样一种情况,我正在迭代要添加到 TinyMCE 的快捷方式对象。 快捷方式为围绕编辑器的更大应用程序添加了功能。

在大多数情况下,它工作正常。 但是,我似乎无法添加某些组合。例如,alt+lalt+left.

取此代码:

_.each(oHotKeyCollection, function (oHotKey, sHotKey) {
    this.editor.addShortcut(sHotKey, oHotKey.note, function (e) {
        if (!e) {
            e = event;
        }
        // sHotKey is the pattern (ie. alt+l)
        alert(sHotKey)

        oHotKey.execute(e);
    }.bind(this));
                }
}.bind(this));

当添加 alt+l,然后添加 alt+left 时,按键盘上的 alt+l 将弹出带有 alt+left 的警报。

删除 alt+left 快捷方式允许 alt+l 按预期运行。

alt+ralt+right 以及 alt+ualt+up 似乎也有同样的行为。

如何让这两个快捷方式都起作用?

问题是快捷方式中只能使用某些关键字,例如修饰符名称(ctrl、alt 等...)。其他任何内容都被视为单个键,因此 left 在这种情况下无效,仅被视为 l(请参阅 Shortcuts.ts)。这就是 alt+l 被您的 alt+left 行为覆盖的原因。

因此,要解决此问题,您需要使用 left 的键码而不是关键字。在这种情况下,它将是 alt+37。这是一个 fiddle 显示通过打印到控制台工作:https://fiddle.tiny.cloud/EEhaab.

由于您还提到您正在尝试注册其他箭头键,因此这是您需要使用的组合键:

  • 左:alt+37
  • 右:alt+39
  • 向上:alt+38
  • 向下:alt+40