TinyMCE ancho y alto desobediente!


De acuerdo con la documentación (conflictiva) de TinyMCE, el editor toma el tamaño del textarea (u otro) elemento que reemplaza. También dice que puede establecer el tamaño del editor especificando { height: '123', width: '123' } en el init método.

He probado AMBOS y todavía obtengo un solo resultado: el editor se redimensiona a sí mismo (cómo recuerda está más allá de mí) lo que fue la última vez que un usuario lo redimensionó.

Author: AlfonsoML, 2011-06-22

12 answers

Sé todo sobre esto, es muy molesto.

Agregar esto a cualquier archivo CSS cargado arregló el ancho para mí (solo lo puse en el css global, no en ninguno de los archivos css de TinyMCE, no probé con la altura):

.mceEditor > table {
    width:/* my width */ !important;
}

Esto afectaría a todas las instancias, lo cual estaba bien en mi caso. Puede dirigirse a la barra de herramientas con .mceToolbar

Como que quieres que TinyMCE cambie el tamaño del área de texto, para que pueda ser lo suficientemente amplia como para que se ajuste a todos los iconos de la barra de herramientas.

 18
Author: Wesley Murch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-22 09:22:08

Guarda el último tamaño debido a la configuración del tema. Puede desactivarlo utilizando la siguiente

$('textarea.tinymce').tinymce({
    theme_advanced_resizing: true,
    theme_advanced_resizing_use_cookie : false,
 27
Author: Stuart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-13 08:50:46

Aquí está mi solución.
También funciona para múltiples instancias de editores TinyMCE (init () con la propiedad 'height' solo funciona para la primera instancia, por lo que es una solución para lograr una altura fija o mínima del cuadro de editor).

.mceEditor td.mceIframeContainer iframe {
    min-height: 350px !important;
}
.mceEditor table {
    height: auto !important;
}
 3
Author: Kamil Bednarz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-29 08:30:57
tinyMCE.init({
        mode : "exact",
         .....

Modo:" exact " deshabilitará la capacidad de redimensionar la cuadrícula arrastrando

 1
Author: Gihan Lasita,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-24 13:09:43

Sí, esto es muy molesto. Escribí mi propia función para ajustar la altura a la entrada dada. Puede modificarlo para establecer su altura / anchura como desee:

    resizeIframe: function(frameid) {
        var frameid = frameid ? frameid : this.editor.id+'_ifr';
        var currentfr=document.getElementById(frameid);

        if (currentfr && !window.opera){
            currentfr.style.display="block";
            if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) { //ns6 syntax
                currentfr.height = currentfr.contentDocument.body.offsetHeight + 26;
            }
            else if (currentfr.Document && currentfr.Document.body.scrollHeight) { //ie5+ syntax
                    currentfr.height = currentfr.Document.body.scrollHeight;
            }
            styles = currentfr.getAttribute('style').split(';');
            for (var i=0; i<styles.length; i++) {
                if ( styles[i].search('height:') ==1 ){
                    styles.splice(i,1);
                    break;
                }
            };
            currentfr.setAttribute('style', styles.join(';'));
        }
    },
 1
Author: Thariama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-20 09:54:46

Estoy ajustando ancho y alto al área del editor de esta manera

<style>
#content{width: 620px; height: 500px;} 
</style>

<textarea name="content" id="content" cols="50" rows="15"></textarea>
 0
Author: Gihan Lasita,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-22 08:34:33

Me di cuenta de que una tabla contenedora estaba imponiendo anchos, y también el conjunto de iconos son td, por lo que hay un ancho mínimo al que se colapsarán, por lo que si tiene muchos iconos en una sola fila, podría estar ensuciando todos sus anchos.

Una especie de relacionado TAN pregunta mía, terminó siendo bastante relacionado con su problema: Capaz de flotar elementos td consistentemente?

 0
Author: danjah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:34

Encontré el área de texto TinyMCE (llamada '.mceContentBody ' en mi tema) demasiado pequeño y torpemente marginado en el área de contenido del nuevo post. En mi tema hay un archivo css llamado editor-style. Cambié el ancho (al 98%) sin embargo, dado que TinyMCE utiliza cookies para recordar el tamaño del editor, los cambios de CSS no se pegaban. Después de BORRAR LA CACHÉ DE MI NAVEGADOR, los cambios de ancho/margen CSS entraron en vigor. Finalmente. Gah.

 0
Author: Commandrea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-04 20:39:18

Agregue un 'body_id' usando tinymce.init y luego use ese id en 'content_css' para darle al editor el comportamiento css deseado. Así:

tinymce.init({
    selector: "textarea",
    content_css: '/css/app.css',
    body_id: 'new-journal-editor'
});

Y luego en app.css:

#new-journal-editor {
    height: 123px;
    width: 123px;
}
 0
Author: gpkamp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-07 19:18:02

Aunque hay muchas buenas sugerencias aquí, encontré la respuesta leyendo la pregunta. NO hay problema con la altura o el ancho, así que por qué todas estas soluciones funcionan con CSS o funciones de escritura, el método en los documentos funciona.

El desafío original era redimensionar, el autor nunca dijo que la altura o el ancho no funcionaran, simplemente no hicieron lo que él / ella esperaba - solo se declaró como se cita a continuación:

" el editor se redimensiona a (cómo recuerda está más allá de mí) lo que fue la última vez que un usuario lo redimensionó."

Saidul Islam respondió a la pregunta correctamente y para ir un paso más allá Stuart pasó a describir cómo desactivar las cookies. Si necesita establecer la altura y el ancho, hágalo cuando esté en init () y listo. Puedes leer más aquí:

Https://www.tinymce.com/docs/configure/editor-appearance/#min_height

Dimensionar el área de entrada tanto en altura como en anchura funciona como se indica a continuación.

tinymce.init({
selector: '.profileTextArea',
plugins : 'advlist autolink link image lists charmap print preview code',
min_height: 400
});
 0
Author: user1946891,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-22 04:29:33

Me enfrento al mismo problema pero termino haciendo esto

#tinymce-textarea_ifr {
  min-height: 500px !important;
}
.mce-tinymce {
  width: 96% !important;
  margin: 0 auto !important;
}
 0
Author: abdalla arbab,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-13 22:45:49

Encuentro que el mejor método para restringir el ancho TinyMCE 4+ textarea es envolver el textarea en una nueva etiqueta div o span. Luego aplique el ancho a eso. De esta manera se obtienen anchos de porcentaje de uso en lugar de px fijo. si desea ajustar la altura, edite el valor rows = "15".

Ejemplo:

<div style="width:90%!important;" ><textarea name="content"cols="100" rows="15" class="mceEditor" id="content"><?php echo $content;?></textarea></div>
 -1
Author: Nick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-29 10:04:26