我一整天都在尝试配置 TinyMCE Editor 以显示 textcolor 插件的前景色和背景色按钮。
我的插件列表中有文本颜色,|、前色、背景色、|在我的 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 应用程序,以防万一这会产生影响,但我无法想象为什么会产生影响。
谢谢
最佳答案
不确定当前环境是否存在该错误。然而,我的问题是使用相同 API 的 tinyMCE 插件。我经历了同样的未捕获异常。我发现问题是父 createSplitButton() 调用缺少 onClick 属性。当tinyMCE尝试处理父按钮上的点击时,它会失败并出现此错误。我的解决方案是使用 jQuery(已加载到页面上)来查找 mceLast 元素,并触发对其的单击,这会“快捷方式”应该打开的按钮。
我想确保这个错误不会导致重大的用户体验失误: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)内部的回调
关于javascript - Tiny_mce.js "Uncaught TypeError: Cannot call method ' toLowerCase' of undefined"用于前色、背景色按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17455925/