Может ли CKEditor включить ярлык для пользовательского стиля форматирования с помощью setkeystrokes?
Определение стиля:
var estilos = [
// Block-level styles
{ name: 'Alínea', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_alinea' } },
{ name: 'Anexo', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_anexo' } },
{ name: 'Preâmbulo', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_preambulo' } },
{ name: 'Artigo', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_artigo' } },
{ name: 'Assinatura', element: 'h5', attributes: { 'class': 'legislacao_componente legislacao_assinatura' } },
{ name: 'Capítulo', element: 'h4', attributes: { 'class': 'legislacao_componente legislacao_capitulo' } },
{ name: 'Data', element: 'h5', attributes: { 'class': 'legislacao_componente legislacao_data' } },
{ name: 'Ementa', element: 'h2', attributes: { 'class': 'legislacao_componente legislacao_ementa' } },
{ name: 'Inciso', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_inciso' } },
{ name: 'Item', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_item' } },
{ name: 'Parágrafo', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_paragrafo' } },
{ name: 'Seção', element: 'h4', attributes: { 'class': 'legislacao_componente legislacao_secao' } },
{ name: 'Subseção', element: 'h4', attributes: { 'class': 'legislacao_componente legislacao_subsecao' } },
{ name: 'Título', element: 'h1', attributes: { 'class': 'legislacao_componente legislacao_titulo' } },
{ name: 'Parte', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_parte' } },
{ name: 'Livro', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_livro' } }
].sort(function (a, b) {
if (a.name < b.name) return -1;
if (a.name > b.name) return 1;
return 0;
});
CKEDITOR.stylesSet.add('estilos_legislacao', estilos);
Заменить код:
var editor = CKEDITOR.replace('txt_dsLegislacao',
{
extraPlugins: 'copyformatting,keystrokes',
stylesSet: 'estilos_legislacao',
setKeystroke: [[ CKEDITOR.ALT + 54 /*T*/, 'estilos_legislacao' ]],
contentsCss: [/*'scripts/contents.css',*/ (SITE_BASE_URL + '/css/legislacao.css')]
});
Включение либо через нажатия клавиш plugin.js, либо через замену ярлыка не работает.
Instace Ready:
editor.on('instanceReady', function (e) {
for (var i = 0; i < estilos.length; i++) {
(function (x, y) {
var styleDefinition = new CKEDITOR.style(CKEDITOR.tools.extend(x, { stylesSet: 'estilos_legislacao' })),
commandName = /[_a-z]+$/i.exec(x.attributes.class)[0];
editor.addCommand(commandName, new CKEDITOR.styleCommand(styleDefinition));
editor.contextMenu.addListener(function (element, selection) {
var objectListener = {};
objectListener[commandName] = CKEDITOR.TRISTATE_OFF;
return objectListener;
});
var menuItem = {};
menuItem[commandName] = {
label: x.name,
command: commandName,
group: 'image',
order: (y+1)
};
editor.addMenuItems(menuItem);
})(estilos[i], i);
}
});
Кто-нибудь может мне помочь?