2012-05-23 13 views
8

Iam trabajando en una aplicación mvc y utilizando la versión de ckeditor 3.6.2. He utilizado el siguiente código para obtener html seleccionado de ckeditor.Ckeditor html seleccionado no funciona correctamente con el navegador Chrome

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

Tengo un problema en el navegador Chrome cuando he seleccionado un texto y llamo CKEDITOR.instances.editor1.getSelectedHtml().

Por ejemplo, supongamos que en mi editor hay un contenido < span style = "color: red;"> Nota de bienvenida </span>. Si selecciono "Welcome Note" y llamo al método getSelectedHtml() firefox, safari, IE8 devuelve "Welcome Note" con la etiqueta span, pero cromo solo devuelve el texto "Welcome Note". Si intento reemplazar el contenido seleccionado usando CKEDITOR.instances.editor1.insertHtml ("< div style = 'font-size: 12px'>" + CKEDITOR.instances.editor1.getSelectedHtml() + "</div>"), en Chrome, perdí el color de la fuente ya que getSelectedHtml() solo devuelve el texto seleccionado. Pero esto funciona bien con otros navegadores.

Nota: Si el contenido es "Bienvenido < lapso style =" color: red; "> Nota </span>" y la palabra seleccionada es "Bienvenido de nota". En este caso, esto será correcto en Chrome y otros navegadores.

Por favor, sugiera una solución adecuada.

Respuesta

Cuestiones relacionadas