<rmcreative>

RSS

CKEditor autogrow 0.9.5

12 ноября 2009

Обновление плагина autogrow для визуального редактора HTML CKEditor.

Плагин позволяет окну редактора автоматически подстраивать высоту под вводимый текст.

  • Теперь меняет размер при удалении текста, вставке кода и картинок (с картинками пока сделано очень некрасиво и может не всегда срабатывать).

  • В конфигурации можно задать максимальный и минимальный размер:

CKEDITOR.config.minHeight = 200;
CKEDITOR.config.maxHeight = 400;

По умолчанию размер не ограничивается.

  • Корректно работает при уничтожении-создании экземпляра редактора с тем же именем.

Демо

Исходный код

Комментарии RSS

  1. №1993
    Ti
    Ti 12.11.2009, 17:28:18

    в режиме "источник" плагин не работает, ссыпет ошибки:

    JavaScript - http://rmcreative.ru/playground/ckeditor_autogrow/
    Event thread: keydown
    Error:
    name: TypeError
    message: Statement on line 48: Cannot convert undefined or null to Object
    stacktrace:   Line 48 of linked script http://rmcreative.ru/playground/ckeditor_autogrow/ckeditor_autogrow.js
                    return CKAutoGrow.editor.document.getBody().$.clientHeight;
      Line 18 of linked script http://rmcreative.ru/playground/ckeditor_autogrow/ckeditor_autogrow.js
                    var newHeight = CKAutoGrow.getHeight();
      ...  Line 6 of linked script http://ckeditor.com/apps/ckeditor/3.0.1/ckeditor.js
        function(o,p,q,r){var s={name:d,sender:this,editor:o,data:p,listenerData:g,stop:q,cancel:r,removeListener:function(){l.removeListener(d,e);}};e.call(f,s);return s.data;}
      ...  Line 6 of linked script http://ckeditor.com/apps/ckeditor/3.0.1/ckeditor.js
        function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o
  2. №1994
    Ti
    Ti 12.11.2009, 17:39:52

    плагин не срабатывает до нажатии на нем кнопки в случаях:

    • при копировании и вставке через меню

    • перетаскивая текст мышкой в редактор

    я знаю только о "грязном" решении этих проблем: после фокуса через интервал менять высоту

    можно еще дополнительно проверять изменилось ли содержимое, но не факт что без сравнение содержимого будет работать медленнее

  3. №1995
    Sam
    Sam 12.11.2009, 20:51:48

    Спасибо. Ошибку поправлю. Что до срабатываний — там для очень многих операций в API просто нет событий. Думаю, поэтому официального autogrow пока не существует.

  4. №2162
    Fedorenko
    Fedorenko 11.01.2010, 2:54:44

    Добавьте в код:

    check : function() {
                if (!CKAutoGrow.editor.document) return;
                ...
            }

    autogrow не будет падать в режиме "источник".

  5. №2171
    Ti
    Ti 13.01.2010, 13:13:06

    Что отключить autogrow в режиме Мaximize, добавьте в код:

    check : function() {
                if (!CKAutoGrow.editor.document) return;
                if (CKAutoGrow.editor.container.getChild(0).hasClass('cke_maximized')) return;
                ...
            }
  6. №2203
    Николай Егоров
    Николай Егоров 27.01.2010, 15:47:54

    Простите я немного не по теме. Дело в том что мне хочется установить изначально более большой размер окна по высоте. Как это можно сделать? Никак не могу понять...

  7. №2204
    Николай Егоров
    Николай Егоров 27.01.2010, 15:49:18

    Дополнение к предыдущему посту - плагин я не использую...

  8. №2209
    Sam
    Sam 28.01.2010, 17:30:52

    По идее можно попробовать через CSS высоту iframe увеличить.

  9. №2211
    Николай Егоров
    Николай Егоров 29.01.2010, 21:16:49

    а где именно? я не смог...

  10. №2218
    Sam
    Sam 02.02.2010, 0:30:34

    Применил патчи Fedorenko и Ti.

  11. №2308
    Игорь
    Игорь 18.02.2010, 12:46:38

    Пытаюсь подключить ваш плагин но получаю такую ошибку.

    Ошибка: uncaught exception: [CKEDITOR.resourceManager.load] Resource name "ckeditor_autogrow" was not found at "http://ckeditor.com/apps/ckeditor/3.0.1/plugins/ckeditor_autogrow/plugin.js?t=99GE".

  12. №2413
    Fedorenko
    Fedorenko 19.03.2010, 5:24:05

    С выходом CKEditor 3.2 снова всплыл баг в режиме Мaximize (cke_maximized теперь container.getChild(1), а не container.getChild(0)).

    Замените код:

    if (CKAutoGrow.editor.container.getChild(0).hasClass('cke_maximized')) return;

    На:

    if (CKAutoGrow.editor.getCommand( 'maximize' ).state == CKEDITOR.TRISTATE_ON) return;

  13. №2414
    Joy
    Joy 19.03.2010, 14:55:45

    to Игорь:

    Плагин надо положить в

    plugins/ckeditor_autogrow/plugin.js

    Подключается в config.js

    config.extraPlugins = 'ckeditor_autogrow';
  14. №2588
    Fedorenko
    Fedorenko 24.05.2010, 4:32:07

    Чтобы autogrow чаще (правильнее) изменял размер редактора надо заменить строку:

    editor.on('selectionChange', CKAutoGrow.check);

    не:

    editor.on('selectionChange', CKAutoGrow.check);
    editor.on('attachStyleStateChange', CKAutoGrow.check);
  15. №2889
    Евгения
    Евгения 18.08.2010, 13:17:10

    Редактор наконец-то выпустил свой старый autogrow для новой версии...

    Смотрим, качаем :)

    http://ckeditor.com/blog/CKEditor_3.4_released

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.