Выбранный Ckeditor html некорректно работает с браузером Chrome

Я работаю в приложении 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("

"+ CKEDITOR.instances.editor1.getSelectedHtml()+"
"), в хроме я потерял цвет шрифта, так как getSelectedHtml() возвращает только выделенный текст. Но это прекрасно работает с другими браузерами.

Примечание. Если текст «Добро пожаловать Примечание" и выбранное слово "Добро пожаловать Примечание. В этом случае это будет правильно в Chrome и других браузерах.

Пожалуйста, предложите правильное решение.

9
задан Jayaraj 23 May 2012 в 12:43
поделиться