UPDATE:问题是FF的.cloneNode()方法:http://jsfiddle.net/beCVL/1/Firefox和IE的转换原来的颜色值,RGB
我知道FF和IE浏览器在内部转换颜色为RGB,这会导致问题,因为颜色值不要与服务器上的内容不匹配。
证明:
Chrome 18:
CKEDITOR.instances.selected_text_actual.getData()
>> "s <span style="color: #ff0000">text</span>"
FireFox 11:
CKEDITOR.instances.selected_text_actual.getData()
>> "s <span style="color: rgb(255, 0, 0);">text</span>"
所以,我想解决这个问题的办法就是让CKEditor的数据处理器始终使用RGB值。有没有办法做到这一点?
我发现,这样的事情应该工作:
CKEDITOR.on('instanceReady', function(ev){
var editor = ev.editor,
dataProcessor = editor.dataProcessor,
htmlFilter = dataProcessor && dataProcessor.htmlFilter;
// HTML 4 way to end tags
dataProcessor.writer.selfClosingEnd = '>';
htmlFilter.addRules({
elements:{
$:function(element){
var e = jQuery(element);
e.css("color", e.css("color")); // jquery auto converts to rgb
}
}
});
});
来源:http://sebduggan.com/blog/customising-ckeditor-settings-in-mura/ 但是,没有任何改变。
到RGB的转换是非常直截了当:
a.attr("style", "color: #444")
[
<div style="color: #444"></div>
]
a.css("color", a.css("color"));
[
<div style="color: rgb(68, 68, 68); "></div>
]
编辑:问题是FF的.cloneNode()方法:http://jsfiddle.net/beCVL/1/
“颜色值与服务器上的内容不匹配”是什么意思?字符串明智?因为'rgb(255,0,0)'正好是'#ff0000'。 – Bojangles 2012-04-03 00:16:46
这是不准确的。一个是十六进制,另一个是RGB。我认为我很直率,但是.. idk。 = \ – NullVoxPopuli 2012-04-03 00:17:34
您是指每种符号产生的颜色,还是实际的符号本身? – Bojangles 2012-04-03 00:18:18