2012-05-23 27 views
8

Bir mvc uygulamasında ve ckeditor 3.6.2 sürümünü kullanarak çalışıyorum. Ckeditor'dan seçilen html almak için aşağıdaki kodu kullandım. I() bir metin seçilmiş ve CKEDITOR.instances.editor1.getSelectedHtml çağırdığınızdaCkeditor seçili html krom tarayıcısında doğru çalışmıyor

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; 
    } 
}; 

ben krom tarayıcıda bir sorunu var. Örneğin, editörümde < span style = "color: red;" Hoş Geldiniz Not </span> içeriğine sahip olduğunu varsayalım. "Hoş Geldiniz Notu" seçtiyseniz ve getSelectedHtml() yöntemi firefox, safari öğesini çağırırsam, IE8 span etiketi ile birlikte "Hoş Geldiniz Notu" nu döndürür, ancak krom yalnızca "Hoş Geldiniz Notu" metnini döndürür. Iam seçilen içeriği CKEDITOR.instances.editor1.insertHtml ("< div style =" font-size: 12px '> "+ CKEDITOR.instances.editor1.getSelectedHtml() +" </div> ") kullanarak değiştirmeye çalışıyorsa, kromda getSelectedHtml() yalnızca seçili metni döndürdüğünden yazı tipini kaybettim. Ancak bu diğer tarayıcılarla iyi çalışır.

Not: İçerik "Hoşgeldin < yayılma style =" color ise: red; "> </span Not>" ve seçilen kelime "Hoşgeldin Not" dir. Bu durumda, bu krom ve diğer tarayıcılarda doğru olacaktır.

Lütfen uygun bir çözüm öneriniz.

cevap