¿Cómo uso el paquete jQuery de TinyMCE y cuál es la diferencia con el complemento jQuery de TinyMCE?
tinymce-4 (3)
Dada la confusión sobre la "versión" de jQuery en comparación con el "complemento" de jQuery, pensé en investigar ya que estoy agregando TinyMCE a un proyecto de MVC jQuery en este momento.
Instalé el paquete Raw TinyMCE NuGet de Exphox (versión Raw JS) en un proyecto y el paquete TinyMCE.jQuery NuGet en otro proyecto.
Luego comparé carpetas, archivos, tamaño, etc. con Araxis Merge, y luego "pretecié" el código fuente minificado para examinar el contenido.
Aquí están los resultados de NuGet:
Los paquetes de NuGet son idénticos con la excepción del único archivo jquery.tinymce.min.js
, que se agregó al paquete de TinyMCE.jQuery NuGet.
¡El archivo jQuery es solo un complemento directo para aplicar el MCE a los elementos jQuery!
Por lo tanto, en lo que respecta a los paquetes de NuGet, la versión jQuery no es más que un complemento que implementa TinyMCE en los elementos jQuery. ¡Nada más!
Esto va en contra de los comentarios que se encuentran aquí en http://www.tinymce.com/tryit/3_x/jquery_version.php ese estado:
Este ejemplo carga una versión jQuery específica de TinyMCE. Esta versión es un poco más pequeña ya que no incluye alguna lógica redundante como el motor Sizzle.
He visto esta publicación ¿Qué es el paquete jQuery de TinyMCE? lo que explica qué es el paquete v4 TinyMCE jQuery, pero la publicación y el sitio tinymce solo contienen ejemplos de v3.
Cuando descargo el paquete v4 TinyMCE jQuery no hay tiny_mce.js; Parece que hay dos archivos jquery.tinymce.min.js y tinymce.min.js. He leído que si incluyo ambos archivos, estoy usando TinyMCE completo y no la versión jQuery, pero si solo incluyo el archivo jQuery, mi llamada a tinyMCE.init falla con "tinyMCE no está definido".
Realmente prefiero estar averiguando esto a partir de la documentación, pero he intentado buscarlo y no puedo encontrar nada acerca de la versión jQuery.
En un punto relacionado, ¿alguien puede explicar qué es el plugin TinyMCE jQuery y cómo se relaciona con lo anterior? Creo que esa puede ser la brecha en mi comprensión.
Muchas gracias de antemano
La versión de tinymce jQuery permite a un desarrollador utilizar comandos de jQuery para el editor de tinymce. Recomiendo encarecidamente a todos los que escuchen que no utilicen la compilación jQuery de tinymce y se apeguen a la versión regular de tinymce. El motivo es sencillo: la sobrecarga de crear objetos y elementos adicionales con la versión jQuery no pesa en los beneficios. En el caso de usar los propios plugins de tinymce con varios manejadores de eventos clave, descubrí que la versión de jQuery tinymce tardó mucho tiempo en procesar muchos golpes rápidos del teclado (lo que provocó un retraso en la aparición de letras en el editor). El camino a seguir aquí es utilizar la compilación regular de tinymce y cargar jQuery regular en el documento principal también. Entonces es posible acceder a tinymce y direccionar elementos html utilizando jQuery.
Me encontré con el mismo problema hace unas semanas. No necesita utilizar tinymce como un complemento de jQuery, pero la opción está ahí si lo desea. La gran mayoría del código fuente de tinymce está en el archivo tinymce.min.js y el archivo jQuery.tinymce.min solo contiene el código que envuelve la funcionalidad tinymce en un complemento de jQuery. De todos modos, si quieres usarlo necesitarás ambos.
<script src="/js/jquery-1.10.2.js" type="text/javascript"></script>
<script src="/js/tinymce/tinymce.min.js" type="text/javascript"></script>
<script src="/js/tinymce/jquery.tinymce.min.js" type="text/javascript"></script>
La única diferencia principal que yo sepa en términos de TinyMCE es la forma en que se inicializa el editor. Si no estás usando jQuery, deberías inicializarlo así:
tinymce.init({
selector: ''textarea'',
theme: "modern"
...
})
Mientras que cuando lo usas como un complemento de jQuery, puedes usar jQuery para inicializarlo y obtienes el beneficio adicional de poder encadenar bondad de jQuery adicional a tu método de inicialización. Como en:
$(''textarea'').html(''<p>some dynamic content</p>'').tinymce({
theme: "modern",
...
})
Aparte de eso, son básicamente los mismos, creo.