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