Foros del Web » Programando para Internet » Javascript »

cursor del textarea

Estas en el tema de cursor del textarea en el foro de Javascript en Foros del Web. hola a todos. Me gustaria hacer un foro, me gustaria q los usuarios puedieran poner las letras en negrita, subrayado, cursiva ... para ello tengo ...
  #1 (permalink)  
Antiguo 09/02/2004, 19:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta cursor del textarea

hola a todos.

Me gustaria hacer un foro, me gustaria q los usuarios puedieran poner las letras en negrita, subrayado, cursiva ... para ello tengo varios botones, uno para cada función. Y me pasa el siguiente problema:

si por ejemplo quiero poner en negrita una palabra intermedia, no me lo hace porqué me coloca los b y /b al final del texto.

ej: hola "esto" es una prueba. b /b.

Esto es lo q me hace, la causa de este problema es que no se obtener la posicion del cursor en el textarea, cuando doy al boton me pierde la posición y me lo añade al final de la frase.

Espero vuestra ayuda.

Gracias.
  #2 (permalink)  
Antiguo 10/03/2004, 00:49
Avatar de TurKa  
Fecha de Ingreso: enero-2003
Ubicación: Gerli, Avellaneda
Mensajes: 543
Antigüedad: 21 años, 3 meses
Puntos: 4
Yo en mi foro, utilizo el siguiente script:

<script languaje="javascript">
function codigo(numero) {
etiquetas = new Array('|b|','|/b|','|i|','|/i|','|u|','|/u|');
seleccion = document.selection.createRange().text;
if (seleccion) {
document.selection.createRange().text = etiquetas[numero] + seleccion + etiquetas[numero+1];
nombre_formulario.nombre_campo_textarea.focus();
seleccion = '';
return;
}

else {
insertar.mensaje.value += etiquetas[numero] + "texto" + etiquetas[numero+1] + " ";
nombre_formulario.nombre_campo_textarea.focus();
return;
}
}
</script>


Ahora bien, si te fijas en la variable etiquetas verás que contiene un array con varios valores: |b| |/b| |u| |/u|
En la realidad de mi script son [ ] y no |

Cada uno de esos array los identificarás por un número. Ese número es el index del array, "dicho en español" la ubicación que encuentras de izquierda a derecha, teniendo en cuenta que el primer número (index) es 0 (cero).

Entonces, luego puedes colocar un botón que llame a esta función.
Por ejemplo, en este caso, escribirá |b| |/b| alrededor del texto seleccionado y si no hay selección escribirá |b|texto|/b|:

<input type="button" value="Negrita" onClick="codigo(0)">

Entonces, cuando desees llamar al código que "subrayaría el texto" deberás utilizar el index 4
onClick="codigo(4)"
(ten en cuenta que irán en pares:
index 0 y 1: escriben negritas
index 2 y 3: cursiva
index 4 y 5: subrayado)

No olvides cambiar las líneas:
nombre_formulario.nombre_campo_textarea que encuentres en el script.
Indica el nombre de tu formulario y el del textarea correspondiente.

Espero te sirva,
Saludos!!!!
__________________
Programación LAMP con Scrum y XP
www.eugeniabahit.com.com.ar
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 02:45.