在创建YUI RTE工具栏后修改它

时间:2009-02-04 16:18:58

标签: javascript yui rte

我处于一种我无法控制一个或多个YUI Rich Text Editors的创建的情况;它是在别人的图书馆里完成的。

出于本讨论的目的:

  • 修补代码 - 猴子或其他 - 不是一种选择。
  • 删除(editor.destroy())已经存在的编辑器并添加我自己的编辑器也不是一个选项。创建编辑器的代码执行 Other Things 并引用引用等 - 我需要修改当前编辑器

通过创作,我的意思是:

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

myEditor.render();

问题是我希望这些编辑器具有与他们所拥有的不同的工具栏配置。确切地说,我想删除一堆按钮(default有点臃肿)。

我设法使用EditorInfo工具获取编辑器,但我无法对其进行任何操作。编辑器上有一个apparently变量,可以让你获得Toolbar个实例,但是当我尝试它时,我得到的只是null

那么,有没有办法在调用render()删除工具栏按钮后修改YUI富文本编辑器?

1 个答案:

答案 0 :(得分:1)

由于我看不到代码,所以给出答案有点难。但是一旦您有权访问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 mailing list上提问,以便其他人也可以学习;)