Tengo problemas para desarrollar complementos CKEditor que inserten contenidos no editables en el flujo de texto. He estado tratando de utilizar las funciones de rango, pero con poco éxito ya que la documentación es menos que estelar. Por lo tanto, dado un poco de texto, digamos que los insertos de plug-in "[[cosas no editable]]" y después de la visualización WYSIWYG envuelve de que en un lapso de modo que puede ser de estilo en un color:Posición del cursor CKEditor después de insertar el elemento no editable
<p>This is some text[[uneditable stuff here]]</p>
Cuando primera inserción lo que no se puede editar, queremos que el usuario pueda continuar escribiendo o pulsando Intro para una nueva línea. El siguiente código (que llegué aquí: How to set cursor position to end of text in CKEditor?) funciona en Firefox, pero (por supuesto) no en IE9, 8 o 7:
var s = editor.getSelection();
editor.insertElement(e); // element 'e'= a span created earlier
var p = e.getParent();
s.selectElement(p);
var selected_ranges = s.getRanges();
selected_ranges[0].collapse(false); // false = to the end of the selected node
s.selectRanges(selected_ranges); // putting the current selection there
Así que lo que quiero que suceda es que el cursor va en la posición "^" :
<p>This is some text<span>[[uneditable stuff here]]</span>^</p>
Si el nuevo elemento no se encuentra al final de la línea, a continuación, después de crearlo, el cursor debe ir a aquí:
<p>This is some text<span>[[uneditable stuff here]]</span>^ with more text after the new element</p>
En FF, puedo colocar el cursor al final de la línea, aunque no en la posición después del nuevo elemento. En IE, el cursor todavía está dentro del nuevo SPAN, que veo cuando escribo y todavía está en el color css del tramo, y cuando cambio a la vista SOURCE, el texto se va (porque es un tramo no editable).
Sé que hay un método range.setStartAfter, pero han sido totalmente incapaces de hacerlo funcionar incluso en FF/Chrome.
¿Alguien tiene un buen manejo sobre el uso de rango y métodos de selección en CKEditor? Sé I ¡no!
Empezar a pensar que usar editor.insertElement es incorrecto, y debo aprender sobre las funciones FakeElement (insertBogus?), Que aún no entiendo. Los complementos de stock para enlaces e imágenes no parecen tener este problema.
Estoy tratando de resolver este problema ahora mismo. ¿Has tenido éxito desde que publicaste? – coyotesqrl