Iam在mvc應用程序中使用並使用ckeditor 3.6.2版本。我用下面的代碼從ckeditor中獲取選定的html。Ckeditor選擇html無法正常使用鉻瀏覽器
CKEDITOR.editor.prototype.getSelectedHtml = function() {
if (CKEDITOR.env.ie) {
this.focus();
selection = this.getSelection();
} else {
selection = this.getSelection();
}
if (selection) {
var bookmarks = selection.createBookmarks(),
range = selection.getRanges()[0],
fragment = range.clone().cloneContents();
selection.selectBookmarks(bookmarks);
var retval = "",
childList = fragment.getChildren(),
childCount = childList.count();
for (var i = 0; i < childCount; i++) {
var child = childList.getItem(i);
console.log(child);
retval += (child.getOuterHtml ?
child.getOuterHtml() : child.getText());
}
return retval;
}
};
我在Chrome瀏覽器中的一個問題,當我選擇了文本,並調用CKEDITOR.instances.editor1.getSelectedHtml()。
例如,假設在我的編輯器中有一個內容<歡迎註釋</span>。如果我選擇「Welcome Note」並調用getSelectedHtml()方法firefox,safari,IE8會返回帶有span標記的「Welcome Note」,但chrome只返回文本「Welcome Note」。如果Iam嘗試使用CKEDITOR.instances.editor1.insertHtml(「< div style ='font-size:12px'>」+ CKEDITOR.instances.editor1.getSelectedHtml()+「</div>」)替換所選內容,在鉻我失去了字體顏色,因爲getSelectedHtml()只返回選定的文本。但是,這對其他瀏覽器正常工作。
注意:如果內容是「歡迎<跨度 風格=」顏色:紅;「>注意< /跨度>」和所選擇的字是「歡迎 注」。在這種情況下,在Chrome和其他瀏覽器中這是正確的。
請建議一個合適的解決方案。