| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Вставка текста в CKEditor без разрыва элемента |
| Автор: SkyHawk 20.11.2012, 09:10 | ||
| Доброе время суток! Господа! Помогите. Пишу плагин для CKEditor. Нужно вставить текст в редакторе CKEditor в месте, где располагается курсор. При обычной вставке внутри элемента SPAN редактор разрывает элемент на два с аналогичными атрибутами (в том числе и id, что, я считаю, совсем не правильно), вставляя текст из буфера между ними во вновь созданный элемент. Пытаюсь решить проблему отловом события on('paste', вставляя текст внутрь элемента.
Для этого определяю позицию курсора, разрываю текст на две части, вставляю между ними текст из буфера обмена (атрибут event), и перезаписываю текст методом setText. Вопрос: КАК РАЗМЕСТИТЬ ТЕКСТОВЫЙ КУРСОР ПОСЛЕ ИМЕННО ВСТАВЛЕННОГО ТЕКСТА (не всего текста внутри элемента, а именно того, что был вставлен из буфера)? Элемент при выполнении события paste почему-то считается цельным, неделимым, и указание, к примеру, диапазона range(0,1) выделяет весь элемент, а range(1,1) - распологает курсор в конце элемента. Были мысли полностью заменить событие 'paste', переписав его в событии 'key', но не знаю, как обратиться к буферу обмена для получения вставляемого текста. Поэтому второй вопрос, ответ на который также помог бы: КАК обратиться к буферу обмена в CKEditor'е? |
| Автор: SkyHawk 20.11.2012, 13:47 |
| в событии on('key' выделение range(2,10) отрабатывает нормально - выделяет со 2 по 10 элементы... А в событии on('paste' - не хочет, вылетает эксепшн. А выделение range(0,1) эксепшн не вызывает, но выделяет весь элемент. То есть элемент как-бы "схлопнут", или "свернут" - позиция 0 - это перед открывающим тегом элемента, позиция 1 - за закрывающим тегом элемента. Потом если опять обрабатывать on('key' - то опять выделяется нормально, как и должно. Как отменить "схлопывание" элемента? |