Попытка добавить заполнитель в CKeditor 4, но безуспешно - PullRequest
0 голосов
/ 05 сентября 2018

Я просто пытаюсь настроить определенные параметры для определенного ckeditor, и мне не везет. Например, у меня есть views/assets/javascripts/ckeditor/config.js, который работает , но это "глобальный" файл конфигурации.

В некоторых представлениях в моем приложении rails мне нужны другие настройки, например, заполнители. Я не уверен, что версия 4 включает в себя множество изменений по сравнению с некоторыми более старыми, но вот некоторые другие ссылки на stackoverflow, которые я использовал:

Как добавить атрибут-заполнитель в экземпляр CKEditor?

В частности, этот предлагает использовать CKEDITOR.replace("myeditor" , config ); для замены заполнителя, но это не работает для меня. Когда я заменяю «myeditor» идентификатором моего элемента textarea, например: CKEDITOR.replace("randomTextAreaID" , {placeholder: "Hello World"} );, я получаю эту ошибку:

Uncaught Экземпляр редактора "randomTextAreaID" уже прикреплен к предоставленному элементу.

Есть и другие предложения, которые появляются как «хаки» с 2012 года, но это 6 лет назад. Не могу представить, что установка заполнителя для текстового редактора будет такой сложной задачей.

** РЕДАКТИРОВАТЬ **

Итак, я заставил его работать так:

var editor = CKEDITOR.instances['randomTextAreaID'];
if (editor) { editor.destroy(true); }
CKEDITOR.replace( 'randomTextAreaID', {
height: 20, 
});

но все равно похоже, что попытка установить заполнитель не работает.

Я также скачал плагин-заполнитель и разместил его здесь: views/assets/javascripts/ckeditor/plugins/placeholder и все равно не повезло. Нет ошибок загрузки JavaScript, просто не работает.

1 Ответ

0 голосов
/ 06 сентября 2018

Если вы хотите использовать заполнители, пожалуйста, добавьте этот плагин в вашу сборку CKEditor. Поскольку заполнителю требуются плагины, которые также имеют несколько зависимостей, я бы порекомендовал использовать онлайн-сборщик . Просто выберите ваш пакет (например, стандартный), добавьте плагин-заполнитель, и сборщик позаботится о зависимостях. Затем загрузите уменьшенную версию.

После того, как вы запустили эту работу, вам нужно добавить заполнитель в конфигурации экземпляра (config.js является глобальной конфигурацией, а конфигурация в методе замены зависит от экземпляра):

CKEDITOR.replace( 'randomTextAreaID', {
height: 20, 
extraPlugins : 'placeholder'
});

Заполнители можно вставить с помощью диалогового окна заполнителя. Они также автоматически изменят (например, ваш исходный контент) текст, такой как [[any text]], на местозаполнитель. Чтобы использовать более технические термины - этот текст будет преобразован в заполнитель widget .

Пожалуйста, также посмотрите демо заполнителя в действии: https://sdk.ckeditor.com/samples/placeholder.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...