Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión

 
Búsqueda Avanzada

15.707 Mensajes en 3.130 Temas- por 371 Usuarios - Último usuario: lasfirrot
Mayo 22, 2012, 07:11:42
Foro de Hispabyte.netDiseño WebHosting y Desarrollo WebHTML / XML / Javascript (Moderador: D4MR0D)Tema: Textarea en javascript
Páginas: [1]   Ir Abajo
Imprimir
Autor Tema: Textarea en javascript  (Leído 1300 veces)
0 Usuarios y 1 Visitante están viendo este tema.
svoboda
Global Moderator
Experto
*****
Mensajes: 440



Ver Perfil
« : Noviembre 07, 2005, 07:38:34 »


Hola, necesito una manita, haber si alguien me la puede echar.

Tengo un textarea en el que quiero mediante una funcion de javascript poder introducir texto, y cosas asi, tipo introducir smiles en un foro. El problema es que he leido cosillas sobre como manejar y he mirado el codigo de algunas paginitas de foros (esta entre otras), pero no he sacado mucho en claro.

el textarea esta definido asi:
Código:
<textarea name="texto" id="texto" rows="10" cols="22"></textarea>

Se que en mozilla existen las funciones "selectionStart", y "selectionEnd" para la posicion del cursor y lo que esta seleccionado. Que para asignar el textarea a una variable seria algo asi:

Código:
var editor=document.getElementById('texto'));

Que para introducir lo que sea, hay que concatenar lo anterior a la posicion del curso + lo que se introduce + lo posterior.

El problema es, que junto todo esto y no sale nada.
Basicamente el codigo es algo asi:
Código:
<html>
<head>
<script type="text/javascript" src="codJS/funcionesJS.js"></script> //funciones javascript
...
</head>
<body>
...
<a href="javascript:emoticon('[!]')"><img src="smiles/exclam.gif" border=0></a> //introducion del smile
...
</body>
La funcion "emoticon()" es la que no me sale, o a lo mejor esta mal hecha la linea de arriba y es imprescindible un boton, o falta algo de codigo javascript en la pagina de codigo html.

No se, estoy desconcertado y en esta ocasion tengo muy poco tiempo para investigar, asi que si alguien me puede mostrar el camino.

Gracias por la atencion. Adios
En línea
svoboda
Global Moderator
Experto
*****
Mensajes: 440



Ver Perfil
« Respuesta #1 : Noviembre 14, 2005, 11:47:13 »

Bueno por si a alguien le sirve, al final lo termine haciendo algo asi:

Código:
function insertar(smile)
{
zona=document.getElementById("ID");
//Internet Explorer  
if (document.all)
  {
  zona.focus();
  seleccion = document.selection.createRange();
  if(smile=='xxx') seleccion.text=":)";
  ...
  ...
  }
else //Mozilla Firefoz
  {
  var cadena = zona.value.substring(zona.selectionStart, zona.selectionEnd);
  if (zona.selectionStart || zona.selectionStart == '0')
    {
    var inicio=zona.selectionStart;
    var fin=zona.selectionEnd;
    if(smile=='xxx') cadena=":)";
    ...
    ...
    var cursor = inicio + cadena.length;
    zona.value = zona.value.substring(0,inicio)+cadena+ zona.value.substring(fin,zona.value.length);
    zona.selectionStart = cursor;
    zona.selectionEnd = cursor;
    }
  else
    zona.value += seleccion2;
  }
zona.focus();
}

Supongo que tendra algun fallo, porque como ya comente tenia bastante prisa, pero funcionar funciona. De todas formas si alguien le ve algun fallo o alguna correccion que se pueda hacer, estaria bien que la posteara. Adios

Al final lo hice en el mismo HTML y no en un documento aparte.
« Última modificación: Noviembre 14, 2005, 11:48:11 por svoboda » En línea
Páginas: [1]   Ir Arriba
Imprimir
Foro de Hispabyte.netDiseño WebHosting y Desarrollo WebHTML / XML / Javascript (Moderador: D4MR0D)Tema: Textarea en javascript
Ir a:  


Tema diseñado por RJ-45 para Hispabyte.net basado en el
theme famouspadexx v.09 designed by Formado Comprido
Downloable here. My present to padexx.de