Подтвердить что ты не робот

Ширина и высота TinyMCE непослушны!

В соответствии с (противоречивой) документацией TinyMCE редактор принимает размер элемента textarea (или другого), который он заменяет. В нем также говорится, что вы можете установить размер редактора, указав { height: '123', width: '123' } в методе init.

Я пробовал ОБА и все еще получаю только один результат - редактор изменяет размер (насколько он помнит, это вне меня), что это был последний раз, когда пользователь изменил его размер.

4b9b3361

Ответ 1

Я знаю все об этом, это очень раздражает.

Добавление этого в любой загруженный файл CSS фиксировало ширину для меня (я просто поместил его в глобальный css, а не в любой из файлов Css TinyMCE, я не тестировал с высотой):

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

Это повлияет на все экземпляры, что было бы хорошо в моем случае. Вы можете настроить таргетинг на панель инструментов с помощью .mceToolbar

Вы вроде бы хотите, чтобы TinyMCE изменял размер текстового поля, поэтому он может быть достаточно широким, чтобы соответствовать всем значкам панели инструментов.

Ответ 2

Сохраняет последний размер из-за настроек темы. Вы можете отключить его, используя следующие

$('textarea.tinymce').tinymce({
    theme_advanced_resizing: true,
    theme_advanced_resizing_use_cookie : false,

Ответ 3

Вот мое исправление.
Он работает также для нескольких экземпляров редакторов TinyMCE (init() с свойством "height" работает только для первого экземпляра, поэтому обходной путь для достижения фиксированной или минимальной высоты окна редактора).

.mceEditor td.mceIframeContainer iframe {
    min-height: 350px !important;
}
.mceEditor table {
    height: auto !important;
}

Ответ 4

Да, это очень раздражает. Я написал свою собственную функцию, чтобы настроить высоту на данный вход. Вы можете изменить его, чтобы установить высоту/ширину, как вы пожелаете:

    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(';'));
        }
    },

Ответ 5

tinyMCE.init({
        mode : "exact",
         .....

режим: "точное" отключит возможность изменения размера сетки путем перетаскивания

Ответ 6

im установка ширины и высоты в область редактора, подобную этой

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

<textarea name="content" id="content" cols="50" rows="15"></textarea>

Ответ 7

Я заметил, что таблица, содержащая таблицу, применяет ширину, а также набор иконок - это td, поэтому минимальная ширина будет сворачиваться вниз, поэтому, если у вас много значков в одной строке, это может быть беспорядочно ваши ширины.

Относительно связанного со мной вопроса SO, в конечном итоге было связано с вашей проблемой: Способность плавно перемещать элементы td?

Ответ 8

Я обнаружил, что текстовая область TinyMCE (называемая ".mceContentBody" в моей теме) слишком мала и неловко маргинальна в новой области содержимого сообщения. В моей теме есть файл css, называемый редактором. Я изменил ширину (до 98%), но с тех пор, как TinyMCE использует файлы cookie для запоминания размера редактора, изменения CSS не были прикреплены. После CLEARING MY BROWSER CACHE изменения ширины/поля CSS вступили в силу. В заключение. Г.

Ответ 9

Добавьте 'body_id', используя tinymce.init, а затем используйте этот id в 'content_css', чтобы дать редактору нужное поведение css. Например:

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

И затем в app.css:

#new-journal-editor {
    height: 123px;
    width: 123px;
}

Ответ 10

Хотя здесь есть много хороших предложений, я нашел ответ, прочитав вопрос. Нет проблемы с высотой или шириной, поэтому, если все это работает с CSS или функциями записи, работает метод в документах.

Первоначальная задача заключалась в изменении размера, автор никогда не говорил, что высота или ширина не работают, он просто не делал того, что он ожидал, - это было указано только в качестве цитируемого ниже:

"редактор изменяет размеры до (насколько он помнит, это вне меня), что это был последний раз, когда пользователь изменил его размер.

Сайдул Ислам правильно ответил на вопрос и, сделав еще один шаг, Стюарт продолжил описывать, как отключить куки. Если вам нужно установить высоту и ширину, сделайте это, когда в init() и сделайте это. Вы можете прочитать здесь:

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

Определение размера области ввода как по высоте, так и по ширине работает, как описано ниже.

tinymce.init({
selector: '.profileTextArea',
plugins : 'advlist autolink link image lists charmap print preview code',
min_height: 400
});

Ответ 11

Я столкнулся с той же проблемой, но в итоге я делаю это

#tinymce-textarea_ifr {
  min-height: 500px !important;
}
.mce-tinymce {
  width: 96% !important;
  margin: 0 auto !important;
}

Ответ 12

Я считаю, что лучший способ ограничить ширину tinyMCE 4+ textarea - это обернуть текстовое поле в новом теге div или span. Затем примените ширину к этому. Таким образом, вы получаете процентную ширину вместо фиксированных пикселей. если вы хотите отрегулировать высоту, отредактируйте строки = "15".

Пример:

<div style="width:90%!important;" ><textarea name="content"cols="100" rows="15" class="mceEditor" id="content"><?php echo $content;?></textarea></div>