Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/09/2008, 22:01
Avatar de baxi2990
baxi2990
 
Fecha de Ingreso: agosto-2008
Ubicación: Quetzaltenango - Guatemala
Mensajes: 340
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Ingresar etiquetas html desde un boton a area de texto

Gracias amigos por la ayuda y por cambiar de lugar mi tema, ahora tengo una duda con el codigo que vi no manejo a la perfeccion javascript y quisiera ver si algien me ayuda tengo el codigo que aparecia en este mismo foro ya lo arregle para que no pida los textos en la caja de dialogo, pero ahora mi duda es como le hago para que me coloque el codigo en la actual posicion del cursor, por ejemplo ingreso una primera etiqueta para negrita y me deja el curso justo donde termina la instruccion pero quiero que mi texto esta con cursiva tendria q poner el cursor en medio de las de negrita pero a la hora que doy clic me lo pone al final de mi ultima linea en este caso despues de las negritas br /br este es el codigo

Código:
<HTML>
 <HEAD>
 </HEAD>
 <BODY>
  <SCRIPT language="Javascript" type="text/javascript">

   // Este genial Script fue desarrollado por Tukzone, SirMatrix y Unknow, 
   // todos usuarios del Foro.. Gracias a ellos por su colaboración

  function storeCaret(text) { 
   if (text.createTextRange) {
    text.caretPos = document.selection.createRange().duplicate();
   }
  }

  function meter(text) {
   var postopic = document.PostTopic.Message;
   if (postopic.createTextRange && postopic.caretPos) {      
    var caretPos = postopic.caretPos;      
    caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? 

text + ' ' : text;
   }
   else postopic.value += text;
   postopic.focus(caretPos)
  }

  function codigo(accion) {
   switch(accion) {
    case "url":
      url="[ a] [ /a]";
      meter(url);
     break;
    case "bold":
      negras="[ b] [ /b]";
      meter(negras);
     break;
    case "italics":
      italics="[ i] [ /i]";
      meter(italics);
     break;
    case "code":
     code="[ code]  [ /code]";
     meter(code);
     break;
    case "quote":
     quote="[ quote]  [ /quote]";
     meter(quote);
     break;
    default:
     meter(accion);
     break;
   }
  }

  function textCounter(field, countfield, maxlimit) {
   if (field.value.length > maxlimit)
    field.value = field.value.substring(0, maxlimit);
   else 
    countfield.value = maxlimit - field.value.length;
  }
 </script>
 <form name="PostTopic">
  Nombre de usuario:
  <INPUT TYPE="text" NAME="UserName" SIZE="12" MAXLENGTH="25" 

VALUE='Kaopectate'> 
  Password:
  <input maxLength="13" name="Password" size="12" type="password" 

VALUE='**********'>
  Mensaje:
  <textarea 

onKeyDown="textCounter(this.form.Message,this.form.remLen,2000);" 

onKeyUp="javascript:storeCaret(this); 

textCounter(this.form.Message,this.form.remLen,2000);" name="Message" 

onchange="javascript:storeCaret(this);" 

onclick="javascript:storeCaret(this);" rows="10" wrap="VIRTUAL" cols="45">
  </textarea>
  <a href="javascript:codigo('url')">Enlace</a> 
  <a href="javascript:codigo('bold')">negrita</a>
  <a href="javascript:codigo('italics')">italica</a> 
  <a href="javascript:codigo('code')">codigo</a>
  <a href="javascript:codigo('quote')">citar</a>
  Tiene
  <input readonly type=text name=remLen size=5 maxlength=3 value="2000">
  caracteres para su mensaje.
 </form>
</BODY>
</HTML>
Agradesco la ayuda