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

时间:2021-05-28 21:10:00

标签: tinymce keyboard-shortcuts

我看到了大量关于 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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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