2012-05-21 4 views
1

Я включил плагин 'fontsizeselect' в tinyMCE. Мой вопрос: как удалить заголовок (заголовок) в раскрывающемся меню?Как удалить MenuItemTitle из TinyMCE?

enter image description here

Edit:

Я попытался удалить его с помощью JQuery .remove(), но после того, что высота всего списка вычисляется неправильно.

Второй вариант я попытался было:

http://www.tinymce.com/wiki.php/API3:method.tinymce.ui.DropMenu.remove

Но это только пошло не так и «fontsizeselect.remove (название)» (по аналогии с .Добавьте) делает ошибку всей TinyMCE - «не хватает: после того, как Идентификатор свойства ". Проще всего это абсолютно плохой метод для этого.

Третий вариант редактировал tiny_mce \ Themes \ продвинутого \ editor_template_src.js линии 467:

c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', onselect : function(v) {...} 

, но кажется, что разработчики TinyMCE думали, что каждое выпадающий должен иметь название/заголовок

+0

Что не так? Я не опытный пользователь SO, поэтому не знаю, что поделалось неправильно. – Ender

+0

Вопросы по StackOverflow должны касаться решения конкретных проблем программирования. Если ваш вопрос не содержит какой-либо код, вероятно, это не подходящее место для запроса. Вам также нужно показать, что вы приложили некоторые усилия для решения проблемы самостоятельно. Объясните, что вы пробовали, и почему/как эти решения не работают. Задавать вопрос о SO должно быть последним средством, исчерпав все другие исследовательские направления. Есть много рекомендаций относительно того, как вы можете написать отличный вопрос в FAQ и здесь: http://meta.stackexchange.com/questions/7931/faq-for-stack-exchange-sites – Polynomial

+0

Теперь это лучше? – Ender

ответ

0

РЕШИТЬ: до инициализации MCE мы должны переопределить функцию визуализации меню

(function(tinymce) { 
var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher, undef; 

tinymce.create('tinymce.ui.ListBoxNoTitle:tinymce.ui.ListBox', { 
    renderMenu : function() { 
     var t = this, m; 

     m = t.settings.control_manager.createDropMenu(t.id + '_menu', { 
      menu_line : 1, 
      'class' : t.classPrefix + 'Menu mceNoIcons', 
      max_width : 250, 
      max_height : 150 
     }); 

     m.onHideMenu.add(function() { 
      t.hideMenu(); 
      t.focus(); 
     }); 

/*   m.add({ 
      title : t.settings.title, 
      'class' : 'mceMenuItemTitle', 
      onclick : function() { 
       if (t.settings.onselect('') !== false) 
        t.select(''); // Must be runned after 
      } 
     }); 
*/ 
     each(t.items, function(o) { 
      // No value then treat it as a title 
      if (o.value === undef) { 
       m.add({ 
        title : o.title, 
        role : "option", 
        'class' : 'mceMenuItemTitle', 
        onclick : function() { 
         if (t.settings.onselect('') !== false) 
          t.select(''); // Must be runned after 
        } 
       }); 
      } else { 
       o.id = DOM.uniqueId(); 
       o.role= "option"; 
       o.onclick = function() { 
        if (t.settings.onselect(o.value) !== false) 
         t.select(o.value); // Must be runned after 
       }; 

       m.add(o); 
      } 
     }); 

     t.onRenderMenu.dispatch(t, m); 
     t.menu = m; 
     } 
    }); 
})(tinymce); 

И с этим комментарием на «m.add» Вы просто необходимо добавить

tinyMCE.init({ 
     setup : function(ed) { 
      ed.onBeforeRenderUI.add(function(ed){ 
     ed.controlManager.setControlType('listbox', tinymce.ui.ListBoxNoTitle); 
      }); 
     } 

}); 

эта установка для стандартного инициализации tinyMCE. Таким образом, это можно сделать без редактирования исходных файлов.

Смежные вопросы