El código que estoy manejando es el siguiente:
Código:
<script language="Javascript">
function meter(text) {
var postopic = document.form1.text;
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) {
a=document.selection.createRange();
seleccio = a.text;
if (seleccio == '') {seleccio=prompt("Text", ""); lloc = "final";}
switch(accion) {
case "url":
url = prompt("URL de l'Enllaç", "http://");
url="<a="+url+">"+seleccio+"</a>";
meter(url);
break;
case "negreta":
negreta="<b>"+seleccio+"</b>";
meter(negreta);
break;
case "cursiva":
cursiva="<i>"+seleccio+"</i>";
meter(cursiva);
break;
case "color":
color = prompt("Color de l'Enllaç (#012345)", "#");
color="<font color="+color+">"+seleccio+"</font>";
meter(color);
break;
case "mida":
mida = prompt("Mida del text (en punts)", "#");
mida="<font size="+mida+">"+seleccio+"</font>";
meter(mida);
break;
default:
meter(accion);
break;
}
}
</script>
El formulario se llama
form1 i el textarea
text.
Ahora he conseguido que rodee lo que selecciono con las etiquetas necesarias, pero me lo añade al final del textarea en lugar de añadirlo en el sitio donde esta originalmente.
Ejemplo:
"Hoy hace un buen día"
Selecciono
buen, hago negrita y en lugar de darme:
"Hoy hace un <b>buen</b> día" (efecto deseado)
Me da:
"Hoy hace un buen día<b>buen</b>"
¿Qué retoques debo hacerle al código para obtener el efecto deseado?