Изменение панели инструментов YUI RTE после ее создания - PullRequest
0 голосов
/ 04 февраля 2009

Я нахожусь в ситуации, когда я не контролирую создание одного или нескольких YUI Rich Text Editors ; это делается в чужой библиотеке.

Для целей данного обсуждения:

  • исправление кода - обезьяна или иное - не вариант.
  • удаление (editor.destroy()) редактора, который уже есть, и добавление моего собственного также не вариант. Код, который создает редактор, делает Другие вещи с ним и ссылается на ссылку и т. Д. Мне нужно изменить текущий редактор .

Под творением я подразумеваю:

var myEditor = new YAHOO.widget.Editor(control, {
  // toolbar config would go here if I controled this code
});

myEditor.render();

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

Мне удалось получить редактор с помощью инструмента EditorInfo, но я ничего не мог поделать с ним. В редакторе есть очевидно переменная, которая позволяет вам получить экземпляр Toolbar, но когда я попробовал все это, я получил null.

Итак, есть ли способ изменить YUI Rich Text Editor после вызова render() для удаления кнопок панели инструментов?

1 Ответ

1 голос
/ 05 февраля 2009

Поскольку я не вижу код, ответить на него немного сложно. Но как только вы получите доступ к экземпляру Editor, свойство панели инструментов должно предоставить вам полный доступ к методам addButton / detroyButton.

var editor = YAHOO.widget.EditorInfo._instances['editor_id'];
editor.toolbar.destroyButton('bold'); //This should destroy the bold button

Этот код должен работать. Если editor.toolbar имеет значение null, то вы можете обращаться к нему до создания панели инструментов. Вы можете попробовать это:

editor.on('toolbarLoaded', function() {
  this.toolbar.destroyButton('bold');
});

Опять же, немного сложно отлаживать, не видя код или не имея доступа (Firebug) к странице.

Я не пользуюсь этим сайтом, поэтому вы можете задать вопрос в официальном списке рассылки YUI , чтобы другие тоже могли учиться;)

...