Как добавить кнопки заголовка (h1, h2...) в tinyMCE с расширенной темой, простой компоновкой?

У меня есть редактор tinyMCE, который использует расширенную тему. Я использую простой макет на этой расширенной теме, чтобы я мог определить свои собственные панели инструментов на init () без необходимости слишком глубоко в том, что делает tinyMCE.

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

все, что я делаю, происходит внутри tinymce.функция init() , который я вставил ниже:

$("textarea.tinymce").not(".simple").tinymce({
            script_url : "/_lib/script/tiny_mce/tiny_mce.js",
            plugins : "wordcount,paste,spellchecker,table",
            theme : "advanced",
            theme_advanced_layout_manager : "SimpleLayout",
            theme_advanced_statusbar_location : "bottom",
            theme_advanced_toolbar_location : "top",
            theme_advanced_buttons1
                : "bold,italic,underline,strikethrough,|,sub,sup,|,charmap,|,forecolorpicker",
            theme_advanced_buttons2
                : "undo,redo,|,cut,copy,pastetext,pasteword,|,link,unlink,anchor,|,image,code",
            theme_advanced_buttons3 : "",
            theme_advanced_toolbar_align : "left",
            height : 480,
            apply_source_formatting : false,
            convert_fonts_to_spans : true
        });

Я использую плагин jquery для доступа к tinyMCE (я уверен, что это не имеет ничего общего с моим вопросом, но он объясняет код ).

одна из моих идей заключалась в использовании опции theme_advanced_styles, но я не думаю, что это позволит мне вставлять фактические теги заголовков, а просто стилизовать мою разметку с помощью spans и whatnot, чтобы выглядеть как заголовок.

любые идеи с благодарностью. Овации, Джей

3 ответов


вот кнопка, которая сделает heading1 из абзаца. Добавить formath1 на ваш buttonlist и добавить это к вашему TinyMCE и инициализации

setup : function(ed){
    ed.addButton('formath1', // name to add to toolbar button list
    {
        title : 'Make h1', // tooltip text seen on mouseover
        image : 'http://myserver/ma_button_image.png',
        onclick : function()
        {
        ed.execCommand('FormatBlock', false, 'h1');
        }
    });
},

добавление заголовков и других элементов с неявным стилем можно добавить через formatselect С theme: 'advanced' экземпляров theme_advanced_buttons_[1-3] список:

tinyMCE.init({
    mode : 'textareas',
    theme : 'advanced',
    editor_selector : 'mceAdvanced',
    plugins: 'autolink,inlinepopups',
    theme_advanced_blockformats: 'p,address,pre,h1,h2,h3,h4,h5,h6',
    theme_advanced_buttons1: 'formatselect,|,bold,italic,removeformat',
    theme_advanced_buttons2: '',
    theme_advanced_buttons3: '',
    theme_advanced_toolbar_location: 'top',
    theme_advanced_statusbar_location: 'bottom',
    theme_advanced_resizing: true,
    theme_advanced_resize_horizontal: false,
    relative_urls: false
});

Я лишнего не включено по умолчанию только для демонстрации, но TinyMCE Wiki гласит, что, поскольку 2010-10-28 этот список элементов может быть уменьшен или добавлен с элементами, включая:

 `p,div,h1,h2,h3,h4,h5,h6,blockquote,dt,dd,code,samp`

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