bootbox con ck_editor no puede tener acceso a caracteres especiales.
Estoy usando el bootbox
con un ck_editor adentro, cuando selecciono los caracteres especiales desde la barra de herramientas la ventana está desactivada. Tengo esta función que hará la sustitución y se muestra correctamente, pero no puedo acceder a esa ventana. ¿Existe un evento para SpecialChar en el que pueda obtener el enfoque?
function prepCkeditor() {
var editor = CKEDITOR.instances['txtAddCompany'];
if (!editor) {
CKEDITOR.replace('txtAddCompany', {
enterMode: CKEDITOR.ENTER_BR,
height: 35,
entities: false,
contentsCss: 'body {overflow:hidden;font-family:"Raleway", "Open Sans", sans-serif; font-size: 14px;color:#555;}',
resize_enabled: false,
toolbar:
[
{ name: 'tools', items: ['SpecialChar', '-', 'Source', '-', 'Maximize'] }
]
});
}
}
davy.ai
Parece que cuando se hace clic en el botón “SpecialChar” en la barra de herramientas de CKEditor, la ventana se desactiva y el usuario no puede acceder a ella. La función
prepCkeditor()
se utiliza para preparar la instancia de CKEditor e inicializarla con varias configuraciones, incluida la barra de herramientas que incluye el botón “SpecialChar”.Para resolver el problema, el usuario está preguntando si existe un evento para el botón “SpecialChar” en el que puedan enfocarse. Sin embargo, después de revisar la documentación de CKEditor, no parece tener un evento específico para el botón “SpecialChar”.
Una posible solución podría ser agregar un “event listener” a la instancia de CKEditor y escuchar los clics en el botón “SpecialChar”. Cuando se hace clic en el botón, el usuario puede usar la función
setTimeout()
para retrasar la ejecución de su función de reemplazo durante unos milisegundos, lo que podría dar tiempo suficiente a la ventana para que vuelva a estar activa antes de que se ejecute la función de reemplazo.Este código agrega un “event listener” a la instancia
editor
con el eventoinstanceReady
, que se dispara cuando la instancia de CKEditor está completamente cargada y lista para usar. Dentro de la función oyente, el código obtiene el elemento del botón “SpecialChar” utilizando el métodoeditor.ui.get()
, y luego agrega un “event listener” de clic a este elemento utilizando el métodoon()
.Cuando se hace clic en el botón “SpecialChar”, la función de reemplazo se retrasa durante 100 milisegundos utilizando la función
setTimeout()
. Esto debería dar tiempo suficiente a la ventana para que vuelva a estar activa antes de que se ejecute la función de reemplazo.Esta es solo una posible solución y es posible que no funcione en todos los casos, pero vale la pena intentarlo.