2012-05-23 21 views
8

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和其他瀏覽器中這是正確的。

請建議一個合適的解決方案。

回答

相關問題