2016-01-29 2 views
2

Я пытаюсь создать простой плагин для CKEditor, который вставляет фрагмент кода в редактор. Я попытался добавить исключения в фильтр содержимого и даже полностью отключить фильтр содержимого, используя config.allowedContent = true; В моем файле config.js.Как отключить CKEditor от добавления «cke:» в начало тегов объекта?

Когда <object></object> тега первый вставил в редактор он работает нормально, но когда пользователь либо переходит в режим «источник» и обратно в режим WYSIWYG я считаю, что <object> тега теперь превратился в <cke:object></cke:object> тег, который вызывает его чтобы исчезнуть из режима WYSIWYG.

Как отключить эту функцию?

Я признаю, я не в полной мере понять исходный код, но я порылся и преступник (ы), как представляется, файл:

/ckeditor/core/filter.js 

между линиями 1463 и 1533

, а также в:

/ckeditor/core/htmldataprocessor.js 

начиная от линии 788.

Примечание: Я использую CKEditor 4.5.6

Они оба содержат ссылки на cke: и regex, чтобы добавить/удалить этот префикс cke:.

Я пробовал смотреть здесь на переполнение стека, документацию и даже submitted a ticket месяцев назад, но я не смог найти ответ.

ответ

2

Это потому, что у вас нет функции, которая будет обрабатывать этот тег <object>. Например, если вы включите Flash-плагин и вставьте Flash-объект, он будет преобразован в местозаполнитель (отметьте this code). Из-за безопасности не может быть тега <object> внутри редактируемой области, его нужно обработать плагином и преобразовать в замещающий или виджет.

+0

Спасибо Piotr! К сожалению, сейчас у меня больше вопросов. Можете ли вы подробнее рассказать о том, что вы подразумеваете под защитой? Это безопасность браузеров или безопасность редакторов? Кажется, что теги объектов могут отлично работать в редакторе до того, как они будут преобразованы в теги 'cke: object'. [Вот скриншот] (http://i.imgur.com/bIb4tel.png). Кроме того, почему редактор показывает тег объекта, когда он сначала вставлен с помощью 'editor.insertElement (embedTag);' Можете ли вы рекомендовать инструкции/документацию по интеграции с плагином fakeObjects, например, с плагином Flash? –

+1

Точка '' не должна быть частью области редактирования. Его невозможно редактировать, как текст или абзац. Однако он может быть неотредактируемым элементом внутри редактора, с некоторыми редактируемыми частями. Это то, что CKEditor вызывает виджет, вот учебник, как его создать: http://docs.ckeditor.com/#!/guide/widget_sdk_intro –

+0

Спасибо, Петр! После прочтения и просмотра документации по виджетам я смог реализовать свой плагин с использованием инфраструктуры виджета. Благодаря! –

Смежные вопросы