2

我一直在尝试将 TinyMCE 编辑器配置为整天显​​示 textcolor 插件的前景色和背景色按钮。

我的插件列表中有 textcolor 和 |,forecolor,backcolor,| 在我的 theme_advanced_buttons2 设置中。我正在使用 TinyMCE 4.0。?

按钮有一个空间,但图标不显示 - 所有其他图标都显示,只是没有前景色或背景色。当我在 Chrome 中检查元素时,我看到该元素在那里:

<a role="button" id="id_text_forecolor" href="javascript:;" class="mceButton mceButtonEnabled mce_forecolor" onmousedown="return false;" onclick="return false;" aria-labelledby="id_text_forecolor_voice" title="" tabindex="-1">
<span class="mceIcon mce_forecolor"></span>
<span class="mceVoiceLabel mceIconOnly" style="display: none;" id="id_text_forecolor_voice"></span>
</a>

但是当我单击按钮时,控制台会显示此错误,该错误发生在 tiny_mce.js:1

Uncaught TypeError: Cannot call method 'toLowerCase' of undefined 

TinyMCE 中的其他一切工作正常。我正在使用 Django 和 Django-TinyMCE 应用程序,以防万一有所不同,但我无法想象为什么会这样。

谢谢,

4

1 回答 1

0

不确定您遇到错误的当前环境。但是,我的问题在于使用相同 API 的 tinyMCE 插件。我遇到了同样的未捕获异常。我发现问题是父 createSplitButton() 调用缺少 onClick 属性。当 tinyMCE 尝试处理对父按钮的单击时,它会因此错误而失败。我的解决方案是使用 jQuery(已经在页面上加载)找到 mceLast 元素,并触发点击它,这会“快捷方式”应该打开的按钮。

我想确保这个错误不会导致主要的 UX 错误:让 tinyMCE 插件按钮不执行任何操作(并引发错误)!

control = e.createSplitButton( "plugin_button",
           {       
                title: "My Plugin",
                image: 'image.png',
                onclick: function  () {
                            jQuery("#content_"+name+"_open").closest('td').trigger('click')
                            return false;        
            }
});

name 是 tinyMCE.create() -> createControl(name,mgr) 内部的回调

于 2013-09-23T02:41:56.807 回答