He visto un montón de preguntas sobre los atajos de TinyMCE, pero nada como esto.

Tengo una situación en la que estoy iterando sobre un objeto de atajos que quiero agregar a TinyMCE. Los accesos directos agregan funcionalidad para la mayor aplicación en torno al editor.

En su mayor parte, funciona bien. Sin embargo, parece que no puedo agregar ciertas combinaciones. Por ejemplo, alt+l y alt+left.

Toma este código:

_.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));

Cuando se agrega alt+l, y luego se agrega alt+left, los golpes alt+l en el teclado aparecerán una alerta con alt+left.

Eliminar el acceso directo alt+left permite que la función alt+l funcione como se esperaba.

El mismo comportamiento parece ser verdad de alt+r y alt+right, así como alt+u y alt+up}.

¿Cómo puedo conseguir ambos atajos funcionando?

0
justinontheinternet 29 may. 2021 a las 00:10

1 respuesta

La mejor respuesta

El problema es que solo se pueden usar ciertas palabras clave en un atajo, como los nombres de los modificadores (CTRL, ALT, etc.). Cualquier otra cosa se trata como una sola llave, así que left en este caso no es válido y se trata como solo ser l (consulte atajo.ts). Es por eso que alt+l se ha anulado con su comportamiento alt+left.

Por lo tanto, para solucionarlo, deberá usar el código clave para left en lugar de una palabra clave. En este caso que sería alt+37. Aquí hay un violín que muestra que funciona imprimiendo a la consola: https://fiddle.tiny.cloud/eehaab.

Desde que también mencionó que estás tratando de registrar otras teclas de flecha, aquí están las combinaciones clave que necesitaría usar:

  • Izquierda: alt+37
  • Derecha: alt+39
  • Arriba: alt+38
  • Abajo: alt+40
0
newso 29 may. 2021 a las 07:06