CKEditor将setkeystroke添加到格式化样式

时间:2018-08-27 19:18:28

标签: formatting ckeditor styles

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或通过replace快捷方式添加都无效。

准备就绪:

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);
    }
});

有人可以帮助我吗?

0 个答案:

没有答案