我在mvc应用程序中工作并使用ckeditor 3.6.2版本。我使用以下代码从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;
}
};
当我选择文本并调用CKEDITOR.instances.editor1.getSelectedHtml()时,我在chrome浏览器中遇到了问题。
例如,假设在我的编辑器中有一个内容&lt; span style =“color:red;”&gt; Welcome Note&lt; / span&gt;。如果我选择“欢迎注意”并调用getSelectedHtml()方法firefox,safari,IE8会返回带有span标记的“Welcome Note”,但chrome只返回文本“Welcome Note”。如果我尝试使用CKEDITOR.instances.editor1.insertHtml替换所选内容(“&lt; div style ='font-size:12px'&gt;”+ CKEDITOR.instances.editor1.getSelectedHtml()+“&lt; / div&gt; “),在chrome中我丢失了字体颜色,因为getSelectedHtml()只返回选定的文本。但这适用于其他浏览器。
注意:如果内容为“欢迎&lt; span style =“color:red;”&gt;注意&lt; / span&gt;“并且所选单词为”欢迎“ 注意“。在这种情况下,这在chrome和其他浏览器中是正确的。
请提出正确的解决方案。
答案 0 :(得分:0)
CKEDITOR网站上记录了一些类似的案例。特别是,看看这个: