Tiny_mce.js“Uncaught TypeError:无法调用方法'toLowerCase'未定义”用于forecolor,backcolor按钮

时间:2013-07-03 18:50:29

标签: javascript tinymce textcolor

我一直在尝试配置TinyMCE编辑器,以便全天显示textcolor插件的forecolor和backcolor按钮。

我的插件列表中有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应用程序,如果有所作为,我无法想象为什么会这样。

谢谢,

1 个答案:

答案 0 :(得分: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()中的回调 - &gt; createControl(姓名,MGR)