Я работаю в приложении mvc и использую версию ckeditor 3.6.2. Я использовал следующий код для получения выбранного html из ckeditor.
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().
Например, предположим, что в моем редакторе есть содержимое Приветствие. Если я выбрал «Приветствие» и вызову метод getSelectedHtml(), firefox,safari,IE8 вернет «Приветствие» с тегом span, но хром вернет только текст «Приветствие». Если я пытаюсь заменить выбранный контент с помощью CKEDITOR.instances.editor1.insertHtml("
Примечание. Если текст «Добро пожаловать Примечание" и выбранное слово "Добро пожаловать Примечание. В этом случае это будет правильно в Chrome и других браузерах.
Пожалуйста, предложите правильное решение.