Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/09/2005, 21:08
okram
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Javascript

Hola

Definitivamente esto no tiene nada que ver con php... pero creo q no hay problema en ayudarte... ya luego algun moderador mmovera este tema al foro que le corresponde

Aqui las funciones javascript que se usaran... esto debe ir entre los tags <head> y </head>, o en tu archivo .js
Código HTML:
<script language="JavaScript" type="text/javascript">
function storeCaret(text)
{
	if (typeof(text.createTextRange) != 'undefined')
		text.caretPos = document.selection.createRange().duplicate();
}
function okram(text1, text2)
{

// Aqui la referencia a tu campo textarea que esta siendo editado
var textarea = document.form.msg;

	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
	{
		var caretPos = textarea.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;
		caretPos.select();
	}
	else if (typeof(textarea.selectionStart) != "undefined")
	{
		var begin = textarea.value.substr(0, textarea.selectionStart);
		var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
		var end = textarea.value.substr(textarea.selectionEnd);
		var newCursorPos = textarea.selectionStart;
		var scrollPos = textarea.scrollTop;
		textarea.value = begin + text1 + selection + text2 + end;
		if (textarea.setSelectionRange)
		{
			if (selection.length == 0)
				textarea.setSelectionRange(newCursorPos + text1.length, newCursorPos + text1.length);
			else
				textarea.setSelectionRange(newCursorPos, newCursorPos + text1.length + selection.length + text2.length);
			textarea.focus();
		}
		textarea.scrollTop = scrollPos;
	}
	else
	{
		textarea.value += text1 + text2;
		textarea.focus(textarea.value.length - 1);
	}
}
</script> 
EN esta primera parte lo que se hace es definir la funcion StoreCaret() y la funcion okram() XD... SI analizas la segunda, veras como es q trabaja este script... si has seleccionado algo en tu textarea, te añadira los tags al comienzo y al final de tu seleccion, y si no hay nada seleccionado, simplemente insertara ambos tags juntos al final del msg...

Esta funcion okram() requiere de 2 parametros: okram(text1, text2)
text1 sera el tag que va al inicio... en tu caso seria <b>, y text2 el del final (</b>)

Tu formulario basico quedaria asi:
Código HTML:
<form name=form action=send.php method=post>
<textarea name=msg rows="12" cols=60 onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);">
</textarea>
</form><br><br>
<a href="javascript:void(0);" onclick="okram('<b>', '</b>'); return false;">Dar formato en negrita</a> 
Es importante que coloques todos los parametros que puse en la etiqueta <textarea>.

Espero que esto te sirva... cualquier duda posteas para ayudarte

Salu2