¿Cómo puedo saber si CKEditor está cargado? Revisé los documentos de la API, pero solo pude encontrar el evento cargado. Quiero verificar si CKEditor está cargado, porque si lo cargo por segunda vez, mi textareas desaparece.¿Cómo se determina si CKEditor está cargado?
Respuesta
He revisado los documentos de la API, pero solo pude encontrar el evento cargado.
No sé si existe una propiedad específica para esto - ¡podría haberlo! - pero podría usar el evento cargado para establecer un indicador global. No es realmente agradable, pero haría el trabajo.
// At the top of the script
CKEDitor_loaded = false;
// then later
CKEDITOR.on('loaded', function(){ CKEditor_loaded = true; });
En lugar de una variable global, también se podría considerar el establecimiento de algo dentro CKEDITOR
:
CKEDITOR.flag_loaded = true;
Esto sería un poco más limpia.
El evento loaded
no funcionó para mí. instanceReady
trabajaron:
CKEDitor_loaded = false;
CKEDITOR.on('instanceReady', function(){ CKEditor_loaded = true; });
Todavía no hay CKEDITOR, entonces ¿cómo puedo detectarlo? ¿No dispara nada cuando está listo? –
¿Puedes intentar ponerlo en JS violín? –
Si la ventana activara un "ckeditorReady", todo sería feliz. Olvidé mencionar que lo estoy cargando a pedido a través de ajax (en una etiqueta padre con un actualizador PrototypeJS). Sería complicado pegar todo eso, pero lo que hace es esto: cuando el actualizador finaliza (onComplete) se inicializa y se inicializa. Y en la inicialización del niño relevante he hecho esto: http://jsfiddle.net/yzxWv/2/ –
Sé que esto es un post muy antiguo, pero en mi investigación que seguía apareciendo. Estoy cargando dinámicamente CKEditor
a través de jQuery
. No quería cargarlo varias veces porque las cosas comienzan a suceder, como descubriste.
solución simple:
if (!window.CKEDITOR) {
// (not loaded yet, your code to load it)
}
var waitCKEDITOR = setInterval(function() {
if (window.CKEDITOR) {
clearInterval(waitCKEDITOR);
//CKEDITOR.replace(...);
}
}, 100/*milli*/);
Espero que esto ayude a alguien.
También cargo un fragmento de página con la funcionalidad de CKEDITOR a través de AJAX y, como tal, he experimentado muchos de los problemas descritos en esta pregunta. Esta es mi solución:
function setCk(id){
if(window.CKEDITOR){
var _instId = CKEDITOR.instances[id];
if(_instId == undefined){
CKEDITOR.inline(id);
}else{
CKEDITOR.instances[id].destroy();
CKEDITOR.inline(id);
}
}
}
En cada respuesta AJAX para este fragmento me inyecto un elemento de secuencia de comandos en la cabeza con una llamada a setCk (textareaId). El truco es destruir cualquier instancia previa de CKEDITOR para el ID de destino & reiniciar CKEDITOR después de cada carga de fragmento de AJAX.
- 1. ¿Determina si LTE está encendido?
- 2. Comprueba si UIWebView está cargado
- 3. ¿Determina si una aplicación está bloqueada/ocupada?
- 4. ¿Determina si el puerto está en uso?
- 5. Comprueba si html 5 shim está cargado
- 6. jQuery .load no está comprobando si mi elemento está cargado
- 7. C# HttpWebRequest - ¿Cómo se determina si se realizó HTTP 301?
- 8. ¿Cómo verificar si Google Maps API está cargado?
- 9. ¿Cómo puedo detectar si un iframe está cargado?
- 10. ¿Cómo puedo verificar si un complemento jQuery está cargado?
- 11. En Java, ¿cómo se determina si se está ejecutando un subproceso?
- 12. Si se cambia el contenido en CKEditor
- 13. ¿Cómo puedo detectar si un control ActiveX está cargado?
- 14. ¿Cómo se determina si la página emergente está abierta o no?
- 15. ¿Cómo se determina si un objeto está bloqueado (sincronizado) para no bloquearlo en Java?
- 16. ¿Cómo se determina qué componente está siendo utilizado por matplotlib?
- 17. ¿Determina si la pestaña del navegador está activa? - IE?
- 18. ¿Cómo comprobar si CKEditor tiene texto?
- 19. ¿Cómo se determina si dos nodos están conectados?
- 20. ¿Cómo se determina si una lista bidimensional contiene un valor?
- 21. ¿Cómo se determina si la referencia del objeto es nula?
- 22. ¿Cómo se determina si ParameterInfo es de tipo genérico?
- 23. ¿Cómo se determina el tipo de mimo de un archivo cargado por el navegador?
- 24. ¿Cómo detectar cuando mathjax está completamente cargado?
- 25. ¿Cómo se determina el tamaño del proceso?
- 26. ¿Cómo se determina si se ha llamado a un UIViewController como ModalDialog?
- 27. ¿Cómo se determina si el binario se elimina en Mac OS X?
- 28. ¿Cómo se determina una SoapAction válida?
- 29. Detectar si el contenido del iframe se ha cargado satisfactoriamente
- 30. ¿Determina si la página actual requiere autorización?
¿Y cómo descargo todas las instancias? – friedkiwi
@Yvan No tengo idea. ¿Por qué necesitas hacer eso? –
porque si accidentalmente cargo uno dos veces, mi página se corrompe y necesita actualizarse. Como mi aplicación es completamente AJAX, eso no es bueno. – friedkiwi