Я использую CKeditor 4 для электронной почты, и поэтому я хотел бы использовать выравнивание текста с атрибутом html align вместо css.
по умолчанию, например: <p style="text-align:center">test</p>
Что Мне нужно: <p align="center">test</p>
Я знаю, что атрибут align устарел, но он более надежен в электронных письмах, просматриваемых в более старых версиях Outlook, и проще для пользователей, которые ничего не знают о html / css.
Самым чистым решением, которое я нашел, работающим для меня, является внесение следующих изменений в конфигурацию. js:
Больше не отображаются кнопки выравнивания удалив { name: 'paragraph', items : [ 'JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock' ] },
из config.toolbar_MyToolbar.
Добавление config.disallowedContent = '*{text-align}';
Добавление некоторых дополнительных форматов абзацев и использование их для выравнивания вместо стандартные кнопки выравнивания:
config.format_tags = 'left;center;right;justify;h1;h2;h3;h4';
config.format_left = { element: 'p', attributes: { 'align': 'left' } };
config.format_center = { element: 'p', attributes: { 'align': 'center' } };
config.format_right = { element: 'p', attributes: { 'align': 'right' } };
config.format_justify = { element: 'p', attributes: { 'align': 'justify' } }
(для этого мне пришлось добавить плагин Format)
Это работает отлично, но я предпочитаю использование кнопок, если это возможно, потому что они более интуитивно понятны или пользователи ...
У кого-нибудь есть решение для простого и легкого переключения с css выравнивания текста на атрибут html выравнивания?
Или, если проще и возможно, связать стандартные кнопки выравнивания с новыми добавленными стилями абзаца, которые уже делают свое дело.
Что-то в этом направлении, которое уже обнаруживает, когда я нажимаю стандартную центральную кнопку:
`CKEDITOR.on('instanceReady', function (ev) {
// Create a new command with the desired exec function
var editor = ev.editor;
var overridecmd = new CKEDITOR.command(editor, {
exec: function(editor){
// Replace this with your desired save button code
//alert(editor.document.getBody().getHtml());
javascript:void('center');
}
});
// Replace the old save's exec function with the new one
ev.editor.commands.justifycenter.exec = overridecmd.exec;
});`
Но я не знаю, как вызвать функцию, которая вызывается при нажатии format_center в разделе «Формат абзаца». javascript:void('center');
это то, что я вижу при наведении курсора
Я очень ценю вашу помощь!
С уважением, Кристоф
EUREKA: я нашел простое решение без необходимости выше :
`var styleCenter = new CKEDITOR.style({
element: 'p',
attributes: {
'align': 'center'
}
});
CKEDITOR.on('instanceReady', function (ev) {
// Create a new command with the desired exec function
var editor = ev.editor;
var overridecmd = new CKEDITOR.command(editor, {
exec: function(editor){
// Replace this with your desired save button code
editor.applyStyle(styleCenter);
}
});
// Replace the old save's exec function with the new one
ev.editor.commands.justifycenter.exec = overridecmd.exec;
});`
Или есть лучшее решение?