Cursor entre bloques
Permite añadir un párrafo donde normalmente no puede colocarse el cursor: antes de una tabla al principio del documento o entre dos tablas, líneas u otros bloques que se toquen. Una flecha del teclado, un clic en el hueco o un clic en una línea indicadora azul crea el párrafo.


Cómo activarlo
Esta función la ofrece el plugin gapcursor.js (también incluido en plugins/all_plugins.js). Basta con cargarlo; no hay botón en la barra de herramientas.
<link rel="stylesheet" href="/richtexteditor/rte_theme_default.css">
<script src="/richtexteditor/rte.js"></script>
<script src="/richtexteditor/plugins/gapcursor.js"></script>
<div id="editor"><table style="width:100%"><tbody><tr><td>Plan</td><td>Price</td></tr><tr><td>Starter</td><td>$129</td></tr></tbody></table><table style="width:100%"><tbody><tr><td>Region</td><td>Tax</td></tr><tr><td>EU</td><td>20%</td></tr></tbody></table></div>
<script>
var editor = new RichTextEditor("#editor");
</script>
Sin el plugin, en este documento, ArrowUp desde la primera celda deja el cursor en ella, y ArrowRight desde el final de la primera tabla deja el texto que escribas suelto entre las tablas, fuera de cualquier párrafo.
Qué huecos se admiten
Solo se ofrece un hueco donde el autor no puede escribir: antes del primer bloque, entre dos bloques o después del último, cuando el bloque contiguo es uno de table, hr, img, figure, iframe, video, audio, object, embed, canvas, svg o prey aún no hay un párrafo allí. Solo se comprueban los bloques directamente dentro del cuerpo del documento. El propio editor ya conserva un párrafo vacío después de una tabla al final del documento, así que, en la práctica, los huecos están al principio y entre bloques.
Cómo usarlo
- Teclado. ArrowDown, ArrowRight, End o PageDown al final de uno de estos bloques, o ArrowUp, ArrowLeft, Home o PageUp al principio, insertan un párrafo en ese lado. En una tabla, "el final" significa la última fila para ArrowDown y la última celda para ArrowRight; dentro de la tabla, las teclas se comportan como de costumbre. No se modifican las combinaciones con Shift, Ctrl, Alt o Cmd, por lo que no se ven afectadas la selección ni los movimientos de bloques con Alt+Arrow.
- Clic. Un clic en el espacio vacío del editor que corresponda a un hueco inserta allí el párrafo.
- Indicador. Dos tablas pueden tocarse sin píxeles entre ellas. Al mover el puntero a menos de 10 píxeles de ese límite aparece una línea azul; al pulsar el ratón sobre ella se inserta el párrafo.
El nuevo párrafo es <p><br></p>, de modo que tiene altura y el cursor es visible dentro de él.
Opciones y API
| Opción | Valor predeterminado | Función |
|---|---|---|
gapCursorKeys | true | Las flechas y las teclas Home, End y de página insertan un párrafo en el borde de un bloque. |
gapCursorClick | true | Un clic en un hueco inserta un párrafo. |
gapCursorHint | true | Muestra la línea indicadora azul cuando el puntero está cerca de un hueco. |
editor.getGapPositions()devuelve los índices de los elementos hijos donde puede insertarse un párrafo, por ejemplo[0, 1]para el documento anterior.editor.insertParagraphAt(index)inserta un párrafo vacío antes del hijo del cuerpo situado en ese índice y coloca el cursor dentro.editor.insertParagraphBefore(element)yeditor.insertParagraphAfter(element)hacen lo mismo junto a un elemento dado.
Aspectos a tener en cuenta
- No se añade nada hasta que el usuario lo solicita, por lo que un documento que empieza por una tabla se guarda sin cambios.
- La línea indicadora es un elemento real dentro del área de edición mientras se muestra:
<div class="rte-gap-hint" contenteditable="false" aria-hidden="true"></div>. Se elimina cuando el puntero se mueve a otra zona del editor, pero en 2.6.12 permanece si sale del editor directamente desde un hueco, por ejemplo, desde el hueco sobre una tabla inicial hacia la barra de herramientas, ygetHTMLCode()la incluye entonces. Si guardas desde un botón de la barra, establecegapCursorHint: falseo eliminadiv.rte-gap-hinten el servidor. - En el modo de sugerencias (control de cambios), el plugin no inserta nada porque todavía no se puede registrar un párrafo vacío.
Relacionado: demo de compatibilidad con tablas, ordenación de tablas y números de fila.