Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Seleccionar texto en un div y subrayar

Estas en el tema de Seleccionar texto en un div y subrayar en el foro de Javascript en Foros del Web. Hola amigos investigando por internet llevo más de dos día y la verdad no se si mi problema no se puede solucionar o es que ...
  #1 (permalink)  
Antiguo 23/03/2015, 06:40
 
Fecha de Ingreso: marzo-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Pregunta Seleccionar texto en un div y subrayar

Hola amigos investigando por internet llevo más de dos día y la verdad no se si mi problema no se puede solucionar o es que algo estoy haciendo mal.

Mi objetivo es tengo un div y me gustaría recuperar el texto que selecciono con el ratón y no se si esta función no existe, pero no encontré nada de nada. El objetivo final es seleccionar este texto y al presionar un botón cambiarle el color de fondo. Un saludo y gracias por todo
  #2 (permalink)  
Antiguo 23/03/2015, 18:23
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Seleccionar texto en un div y subrayar

aqui hay algo que encontre que te puede iluminar.

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>ejemplo</title>
  5. <script> function sel(inicio,fin){ input=document.getElementById('area'); if(typeof document.selection != 'undefined' && document.selection){ tex=input.value; input.value=''; input.focus(); var str = document.selection.createRange(); input.value=tex; str.move('character', inicio); str.moveEnd("character", fin-inicio); str.select(); } else if(typeof input.selectionStart != 'undefined'){ input.setSelectionRange(inicio,fin); input.focus(); } }
  6. </script>
  7. </head>
  8. <body>
  9. <form id="form1" name="form1" method="post" action="">
  10. <textarea name="area" cols="60" rows="10" id="area">esta es una prueba</textarea> <input type="button" name="Submit" value="seleccionar" onclick="sel(8,11)" />
  11. </form>
  12. </body>
  13. </html>
  #3 (permalink)  
Antiguo 24/03/2015, 03:47
 
Fecha de Ingreso: marzo-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Seleccionar texto en un div y subrayar

Por hay van los tiros, pero hay alguna manera de que te reconozca lo seleccionado automáticamente?
  #4 (permalink)  
Antiguo 25/03/2015, 04:56
 
Fecha de Ingreso: marzo-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Seleccionar texto en un div y subrayar

Por hay van los tiros, pero hay alguna manera de que te reconozca lo seleccionado automáticamente? Quiero decir sería seleccionar con el raton una palabra o una frase y al presionar un botón que le cambia el color de fondo a esa selección
  #5 (permalink)  
Antiguo 25/03/2015, 05:38
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Seleccionar texto en un div y subrayar

Cita:
Iniciado por kiraesley Ver Mensaje
Por hay van los tiros, pero hay alguna manera de que te reconozca lo seleccionado automáticamente? Quiero decir sería seleccionar con el raton una palabra o una frase y al presionar un botón que le cambia el color de fondo a esa selección
No entiendo la finalidad de seleccionar el texto y que después cambie de fondo la sección tras hacer click en un botón.

¿No sería más fácil simplemente hacer click en el botón asignado a la sección y que cambie el color del fondo?
__________________
¿Te sirvió la respuesta? Deja un +1
  #6 (permalink)  
Antiguo 25/03/2015, 05:56
 
Fecha de Ingreso: marzo-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Seleccionar texto en un div y subrayar

Cita:
Iniciado por NueveReinas Ver Mensaje
No entiendo la finalidad de seleccionar el texto y que después cambie de fondo la sección tras hacer click en un botón.

¿No sería más fácil simplemente hacer click en el botón asignado a la sección y que cambie el color del fondo?
Sería a modo subrayado de un texto pero como un subrayador amarillo de los gordos y al cambiar el fondo de color amarillo solo el texto seleccionado hace ese efecto.
Y la verdad que me estoy volviendo loco y no se como hacerlo :S
  #7 (permalink)  
Antiguo 25/03/2015, 06:20
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Seleccionar texto en un div y subrayar

Cita:
Iniciado por kiraesley Ver Mensaje
Sería a modo subrayado de un texto pero como un subrayador amarillo de los gordos y al cambiar el fondo de color amarillo solo el texto seleccionado hace ese efecto.
Y la verdad que me estoy volviendo loco y no se como hacerlo :S
Estoy probando un código. Cuando tenga resultados los posteo.
__________________
¿Te sirvió la respuesta? Deja un +1
  #8 (permalink)  
Antiguo 25/03/2015, 06:40
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Seleccionar texto en un div y subrayar

Después de un buen rato de investigación...

http://jsfiddle.net/vfuamLzh/

Código HTML:
Ver original
  1. <p>Esto texto no se marcará.</p>
  2. <div class="miTexto">Si seleccionas este texto, se marcará.</div>
  3. <span>BLA BLA BLA, aquí no hay marca si lo seleccionas.</span>
  4. <div class="miTexto"><p>Selecciona esto :)</p></div>

Código CSS:
Ver original
  1. /* Esto te marca la selección actual */
  2. *::selection {
  3.     color:black;
  4.     background:red;
  5. }
  6.  
  7. /* Este es el estilo que se le va a agregar al texto seleccionado */
  8. .marca {
  9.     color:black;
  10.     background:yellow;
  11. }

Código Javascript:
Ver original
  1. $(".miTexto").on("mouseup", function (e) { //Importante trabajar con clases y NO con IDs
  2.     var selected = getSelection();
  3.     var range = selected.getRangeAt(0);
  4.     console.log(range);
  5.     if(selected.toString().length >= 1){ //Si se seleccionan uno o más caracteres...
  6.         var newNode = document.createElement("span"); //Crea un span
  7.         newNode.setAttribute("class", "marca"); //Le añade la clase
  8.         range.surroundContents(newNode);      
  9.     }
  10.     selected.removeAllRanges();
  11.  });
  12.  
  13. function getSelection() {
  14.     var seltxt = '';
  15.      if (window.getSelection) {
  16.          seltxt = window.getSelection();
  17.      } else if (document.getSelection) {
  18.          seltxt = document.getSelection();
  19.      } else if (document.selection) {
  20.          seltxt = document.selection.createRange().text;
  21.      }
  22.     else return;
  23.     return seltxt;
  24. }

Espero que sea lo que buscas
__________________
¿Te sirvió la respuesta? Deja un +1
  #9 (permalink)  
Antiguo 31/03/2015, 02:24
 
Fecha de Ingreso: marzo-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Seleccionar texto en un div y subrayar

Perdona tío por motivos familiares no pude entrar
eres un genio de verdad enormee

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:00.