如何在TinyMCE中获得选择的颜色?

Jos*_*osh 6 javascript tinymce

我正在创建一个嵌入了TinyMCE编辑器的应用程序.我希望我的应用程序的控件在tinyMCE编辑器中的选择发生变化时更新,因此字体,大小和颜色菜单显示选择的字体,大小和颜色.字体和颜色工作正常,但我无法弄清楚如何获得颜色.这是我正在使用的代码:

myTinyMCESettings.handle_node_change_callback = function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){
    var editor = tinyMCE.get(editor_id);
    selectionChanged(editor,!any_selection);
};

tinyMCE.init(myTinyMCESettings);

function selectionChanged(ed,selection){    
    var fontName = ed.queryCommandValue('FontName');
    var size = parseInt(ed.queryCommandValue('FontSize'));
    var color = ed.queryCommandValue('ForeColor');
}
Run Code Online (Sandbox Code Playgroud)

但是color === false.如何在tinyMCE内的插入点获取所选文本的前景色或文本?

编辑:进一步跟踪这一点,在tiny_mce_prototype_src.js我看到的第12377行:

// Registred commands
o = t.editorCommands.queryCommandValue(c);
Run Code Online (Sandbox Code Playgroud)

当我在调试器中完成此操作时,t.editorCommands.queryCommandValue(c);返回false.

Che*_*ery 6

我会尝试以另一种方式(没有检查) - 采取计算风格:

myTinyMCESettings.handle_node_change_callback = function(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){
    var editor = tinyMCE.get(editor_id);
    var color =  tinyMCE.DOM.getStyle(node, 'color', true); // computes current color
    selectionChanged(editor,!any_selection);
};
Run Code Online (Sandbox Code Playgroud)