Вот немного больше информации:
Распакованная версия этого кода находится в:
ckeditor / _source / plugins / image / dialogs / image.js (строка 994)
Вместо того, чтобы угадать, что означают все эти буквы, вы можете увидеть реальные объекты, переменные и функции, которые в них вовлечены.
Информация, которую я разместил о прослушивании событий диалога, была основана на том, чтокод и посмотреть, что он делает.
Вам нужно остановить диалоговое окно от добавления встроенного стиля с плавающей запятой, иначе он переопределит стиль, который вы применяете к своему классу.Плавание не добавляется как класс, поэтому использование addClass или removeClass не окажет на него никакого влияния.Это означает, что вам нужно подходить к проблеме по-другому.
Вот несколько вариантов, которые мне пришли в голову, я ожидаю, что другие люди могут предложить дополнительные подходы:
1) Вы можетеизмените код в плагине изображения (но он может быть перезаписан при обновлении редактора).
2) Сделайте копию плагина изображения и измените код, чтобы создать собственный плагин, а затем замените кнопку изображенияс тем, который вызывает ваш плагин.
3) Работайте извне кода диалога, прослушивая событие диалога, затем остановите добавление встроенного стиля с плавающей точкой и добавьте вместо него свой класс.
Надеждаэто помогает,Джо
Какую версию CKEditor вы используете?Я использую 3.6.1.
Я искал "cmbAlign" в файле ckeditor / plugins / image / dialogs / image.js.Я изменил этот бит в строке 11:
id:'cmbAlign',type:'select',widths:['35%','65%'],style:'width:90px'.....
Я изменил "width: 90px" на "width: 290px", и диалоговое окно стало намного шире.Поэтому изменение в этом файле влияет на мою установку.
Возможно ли, что вы работаете с распакованным файлом, найденным в каталоге _source ?:ckeditor / _source / plugins / image / dialogs / image.js
Просто упомяну это, потому что эти файлы не загружаются, пока вы не загружаете один из файлов ckeditor_basic вместо файла ckeditor.js.
A Возможный подход:
Вы можете создать собственный плагин, который заменит плагин для изображений.Здесь есть обучающий раздел с простыми инструкциями по созданию плагина:
Вы можете использовать это как обзор того, как работают плагины, но вы действительно просто внесете несколько изменений в плагин изображений по умолчанию.
Просто скопируйте папку подключаемых модулей изображений из каталога ckeditor / _source / plugins и поместите ее в каталог ckeditor / plugins.Вам нужно будет переименовать плагин и отключить плагин изображений по умолчанию.Затем вы можете внести изменения, которые вы указали в своем посте, в файл image.js.
Чтобы отключить плагин для изображения по умолчанию, добавьте его в свои настройки:
config.removePlugins = 'image';
Другой возможный подход:
Добавьте прослушиватель событий на страницу, вы можете настроить скрипт для выполнения следующих действий:
Наблюдайте за событием "dialogShow" и проверяйтеесли открывшийся диалог является диалогом изображения.Если это так, прослушайте событие изменения селектора выравнивания.Когда селектор выравнивания изменяется, проверьте, выбрано ли «выравнивание по левому краю».Если это так, остановите распространение команды и вставьте имя своего класса в поле «Классы таблиц стилей» на вкладке «Дополнительно».
Вы можете установить приоритет прослушивателя событий для изменения селектора на «1», чтобы он действовал до запуска кода по умолчанию.Документы для метода «on» показывают доступные параметры:
Вы можете посмотреть в следующем посте пример кода и дополнительную информацию о его настройке (используется jQuery):
В этом посте второй раздел ответа (в верхней части) начинается с:
Начать цитату Если вы хотите прослушать изменение элемента select из другого места, вы можете создать прослушиватель, который будет указывать на событие dialogShow.Вот пример:
// Watch for the "dialogShow" event to be fired in the editor,
Конец цитаты
Кроме того, вы захотите обернуть слушатель для события «dialogShow» внутри слушателя для события «instanceReady», вот пример кода для этого (используется jQuery):
// After both the document and editor instance are ready,
// Start listening for the image dialog
// Wait for the document ready event
$(document).ready(function(){
// Wait for the instanceReady event to fire for this (editor1) instance
CKEDITOR.instances.editor1.on( 'instanceReady',
function( instanceReadyEventObj )
{
var currentEditorInstance = instanceReadyEventObj.editor;
...Put Code To Listen For The "dialogShow" Event Here...
}
);
});
Дайте мне знать, если у вас есть какие-либо вопросы о том, что я написал.
Будь здоров, Джо