Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: patilanz en 25 Febrero 2015, 01:06 am



Título: [javascript] Editar html seleccionado | Randy |
Publicado por: patilanz en 25 Febrero 2015, 01:06 am
Hola necesito ayuda con las selecciones del os usuario y su edición para agregar texto o elementos html. Con la librería randy https://code.google.com/p/rangy/wiki/RangySelection#Introduction se puede hacer y es compatible con todos los navegador pero yo quiero saber como funciona y todas las funciones de los distintos navegadores.
Ejemplo de randy; http://rangy.googlecode.com/svn/trunk/demos/core.html


He buscado pero es un lió y un poco desactualizado. Alguien me recomienda un tuto ?

Un saludo


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: Usuario Invitado en 25 Febrero 2015, 13:36 pm
¿Qué es exactamente lo que deseas hacer? Supongo que algo complicado para usar una biblioteca externa.


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: patilanz en 25 Febrero 2015, 14:03 pm
Crear una pagina que te permite crear paginas pero necesito javascript para permitir editar elementos de la pagina que tienen el atributo contenteditable y aparte un menú que te permite agregar elementos en la pagina pero para esto necesito ver donde esta el foco, si hay algo seleccionado, agregar elementos ...

Supongo que algo complicado para usar una biblioteca externa.

No quiero usar la librería pero quiero saber como funcionan sus métodos y funciones en todos los navegadores. Quiero un tutorial sobre funciones como document.getSelection.


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: MinusFour en 25 Febrero 2015, 16:26 pm
Crear una pagina que te permite crear paginas pero necesito javascript para permitir editar elementos de la pagina que tienen el atributo contenteditable y aparte un menú que te permite agregar elementos en la pagina pero para esto necesito ver donde esta el foco, si hay algo seleccionado, agregar elementos ...

No quiero usar la librería pero quiero saber como funcionan sus métodos y funciones en todos los navegadores. Quiero un tutorial sobre funciones como document.getSelection.

No todos los elementos pueden ser enfocados y no todo el espacio es ocupado por los elementos. Lo que puedes hacer es simplemente usar una variable para sacar el "foco". Para algunos elementos puedes usar click en lugar de focus, i.e.:

http://jsfiddle.net/khmkz33c/


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: patilanz en 25 Febrero 2015, 16:48 pm
Gracias por tu respuesta pero no me refiria a esto, puedes ver el ejemplo aquí http://rangy.googlecode.com/svn/trunk/demos/core.html


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: MinusFour en 25 Febrero 2015, 18:00 pm
Gracias por tu respuesta pero no me refiria a esto, puedes ver el ejemplo aquí http://rangy.googlecode.com/svn/trunk/demos/core.html

¿Quieres saber la posicion del cursor sobre el texto? Para contenido editable si es posible (inputs, contenteditable).

http://jsfiddle.net/xw4u4ut9/

No estoy seguro si getSelection funcione dentro de inputs, me parece que ahi se usa selectionStart.


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: Usuario Invitado en 25 Febrero 2015, 21:53 pm
Sí, como dice MinusFour, con selectionStart obtienes la posición del cursor en un textbox. Puedes ver un ejemplo aquí (http://jsfiddle.net/swwxqgmg/)


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: patilanz en 25 Febrero 2015, 22:58 pm
Vale y por ejemplo supongamos que el usuario selecciona la algo como esto:

Código
  1. hola <div>que </div><button>tal?</div>

Es un div que contiene otro div y un button pero el usuario selecciona solo la mitad del div padre. Yo quiero eliminar esta parte e insertar otro nodo dentro del div padre eliminando al button y al div hijo seleccionados.

También esta el problema de que de getSelection solo es compatible desde ie 9 en 8 no funciona.


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: MinusFour en 26 Febrero 2015, 00:00 am
Vale y por ejemplo supongamos que el usuario selecciona la algo como esto:

Código
  1. hola <div>que </div><button>tal?</div>

Es un div que contiene otro div y un button pero el usuario selecciona solo la mitad del div padre. Yo quiero eliminar esta parte e insertar otro nodo dentro del div padre eliminando al button y al div hijo seleccionados.

También esta el problema de que de getSelection solo es compatible desde ie 9 en 8 no funciona.

Si de verdad te preocupa la compatibilidad mejor usas Rangy (no randy). En cuanto a como borrar texto de una seleccion:

https://developer.mozilla.org/en-US/docs/Web/API/Selection/deleteFromDocument


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: patilanz en 26 Febrero 2015, 01:43 am
Bueno es que quiero saber los métodos y maneras de hacer lo en todos los navegadores. Creo que tengo que buscar las maneras y adoptarlo por mi cuenta.


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: Usuario Invitado en 26 Febrero 2015, 17:23 pm
¿No es open source dicha librería? Así puedes ver el source para estudiarlo.


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: patilanz en 26 Febrero 2015, 22:50 pm
¿No es open source dicha librería? Así puedes ver el source para estudiarlo.

Creo que voy a hacer esto pero no se por donde empezar porque en cada archivo hay funciones que llaman a otro, no se donde esta el principio  ;D
 


Título: Re: [javascript] Editar html seleccionado | Randy |
Publicado por: EFEX en 27 Febrero 2015, 04:51 am
Para inputs existe un proyecto a parte.
https://code.google.com/p/rangy/

Como implementan GetSelection y document.selection
https://github.com/timdown/rangy/blob/master/src/core/wrappedselection.js#L44-L85

deleteFromDocument
https://github.com/timdown/rangy/blob/master/src/core/wrappedselection.js#L833-L835

Selection and ranges in javascript
http://help.dottoro.com/ljfjepre.php