2009-02-04 6 views
0

Je suis dans une situation où je ne contrôle pas la création d'un ou de plusieurs YUI Rich Text Editors; c'est fait dans la bibliothèque de quelqu'un d'autre.Modification d'une barre d'outils YUI RTE après sa création

Aux fins de cette discussion:

  • rapiéçage singe code-- ou n'est pas une non-ont l'option.
  • En supprimant (editor.destroy()) l'éditeur qui est déjà là et en ajoutant le mien n'est pas non plus une option. Le code qui crée l'éditeur fait Autres choses à lui et fait référence à la référence etc.-- Je dois modifier l'éditeur en cours.

par la création, je veux dire:

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

myEditor.render(); 

Le problème est que je voudrais que ces éditeurs d'avoir une configuration de la barre d'outils différente de ce qu'ils ont. Pour être précis, je voudrais supprimer un tas de boutons (Le default est un peu gonflé).

J'ai réussi à obtenir l'éditeur avec l'outil EditorInfo, mais je ne pouvais pas vraiment faire quoi que ce soit avec. Il ya apparently une variable sur l'éditeur qui vous permet d'obtenir l'instance Toolbar mais quand j'ai essayé tout ce que j'ai obtenu était null.

Donc, est-il un moyen de modifier un YUI Rich Text Editor après render() a été appelé pour supprimer les boutons de la barre d'outils?

Répondre

1

Puisque je ne peux pas voir le code, il est un peu difficile de donner une réponse. Mais une fois que vous avez accès à l'instance de l'éditeur, la propriété toolbar devrait vous donner un accès complet aux méthodes addButton/detroyButton.

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

Ce code devrait fonctionner. Si editor.toolbar est null, vous pouvez y accéder avant la création de la barre d'outils. Vous pouvez essayer ceci:

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

Encore une fois, il est un peu difficile à déboguer sans voir le code ou avoir accès (Firebug) à la page.

Je n'utilise pas ce site, donc vous pouvez vouloir poser la question sur le YUI mailing list officiel afin que d'autres puissent apprendre aussi;)

Questions connexes