Ver Mensaje Individual
  #14 (permalink)  
Antiguo 06/08/2007, 13:53
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Re: Problemas con bbcode en textarea

Segunda parte

Código PHP:
 var s1 = (txtarea.value).substring(0,selEmpz);
 
//var s2 = (txtarea.value).substring(selEmpz, selFin);
 
var s3 = (txtarea.value).substring(selFinselLargo);
 var 
abre "[LIST=1]\n";
 var 
cierra "[/LIST=]";
 
txtarea.value =  s1 +  abre cierra s3;
 for (
i=0i<=opcion.lengthi++) {
 
opcion[i]=prompt("Ingresa los elementos de la lista de uno en uno","");
 if ((
opcion[i]== null) || (opcion[i]== "undefined") || (opcion[i] == "") || (opcion[i] ==' ')) {
 var 
Cursor =  s1.length abre.length suma cierra.length;
 return(
Cursor); 
 }
 
txtarea.value =  s1 +  abre;
 for (
j=0j<=ij++) {
 
txtarea.value +=  "[*]" opcion[j] + "\n"
 }
 
txtarea.value += cierra s3;
 
suma += (opcion[i].length+4);
 }
}

 
//Lista Desordenada
function listades () {
var 
txtarea document.getElementById("firma");
var 
opcion= new Array();
var 
i,j
var suma 0
if ((clientVer >= 4) && is_ie && is_win) {
var 
theSelection document.selection.createRange().text;

 if (
document.selection) {
  if (!
theSelection) {
  
txtarea.focus();
  var 
Sel document.selection.createRange ();
  var 
PosSel1 Sel.moveStart ('character', -txtarea.value.length); 
  var 
SelLargo txtarea.value.length;
  
// La linea siguiente es necesaria por que -- y -- da un valor negativo
  
var ValorPositivo PosSel1 SelLargo 1
  
var SelEmpz SelLargo ValorPositivo
  
var PosSel2 Sel.moveStart ('character', -txtarea.value.length); 
  var 
SelFin SelLargo PosSel2
  
var s1 = (txtarea.value).substring(0,SelEmpz);
  var 
s2 = (txtarea.value).substring(SelEmpz,SelFin);
  
//var s3 = (txtarea.value).substring(selFin, selLargo);
  
var abre "[LIST]\n";
  var 
cierra "[/LIST]";
  
txtarea.value =  s1 +  abre cierra s2;
  for (
i=0i<=opcion.lengthi++) {
  
opcion[i]=prompt("Ingresa los elementos de la lista de uno en uno","");
  if ((
opcion[i]== null) || (opcion[i]== "undefined") || (opcion[i] == "") || (opcion[i] ==' ')) {
  var 
Cursor =  s1.length abre.length suma cierra.length;
  return(
Cursor); 
  }
  
txtarea.value =  s1 +  abre;
  for (
j=0j<=ij++) {
  
txtarea.value +=  "[*]" opcion[j] + "\n"
  }
  
txtarea.value += cierra s2;
  
suma += (opcion[i].length+4);
  }
 }
 
  if (
theSelection) {
  
txtarea.focus();
  var 
Sel document.selection.createRange ();
  var 
PosSel1 Sel.moveStart ('character', -txtarea.value.length); 
  var 
SelLargo txtarea.value.length;
  
// La linea siguiente es necesaria por que -- PosSel1 -- da un valor negativo
  
var ValorPositivo PosSel1 SelLargo 1
  
var SelEmpz SelLargo ValorPositivo
  
var s1 = (txtarea.value).substring(0,SelEmpz);
  var 
selFin s1.length theSelection.length
  
var s2 = (txtarea.value).substring(selFinselLargo);
  var 
abre "[LIST]\n";
  var 
cierra "[/LIST]";
  
txtarea.value =  s1 abre;
  
opcion theSelection.split(" ");
  for (
j=0j<opcion.lengthj++) {
  
txtarea.value +=  "[*]" opcion[j] + "\n"
  
suma += (opcion[j].length+4);
  }
  
txtarea.value += cierra s2;
  var 
Cursor =  s1.length abre.length suma cierra.length;
  return(
Cursor); 
  }
 }
}
else if (
txtarea.selectionEnd && (txtarea.selectionEnd txtarea.selectionStart 0))
{
 var 
selLargo txtarea.textLength;
 var 
selEmpz txtarea.selectionStart;
 var 
selFin txtarea.selectionEnd;
 var 
s1 = (txtarea.value).substring(0,selEmpz);
 var 
s2 = (txtarea.value).substring(selEmpzselFin);
 var 
s3 = (txtarea.value).substring(selFinselLargo);
 var 
abre "[LIST]\n";
 var 
cierra "[/LIST]";
 
opcion s2.split(" ");
 
txtarea.value =  s1 +  abre;
 for (
j=0j<opcion.lengthj++) {
 
txtarea.value +=  "[*]" opcion[j] + "\n"
 
suma += (opcion[j].length+4);
 }
 
txtarea.value += cierra s3;
 var 
Cursor =  s1.length abre.length +  suma cierra.length;
 return(
Cursor); 
}
else
{
 var 
selLargo txtarea.textLength;
 var 
selEmpz txtarea.selectionStart;
 var 
selFin txtarea.selectionEnd;
 var 
s1 = (txtarea.value).substring(0,selEmpz);
 
//var s2 = (txtarea.value).substring(selEmpz, selFin);
 
var s3 = (txtarea.value).substring(selFinselLargo);
 var 
abre "[LIST]\n";
 var 
cierra "[/LIST]";
 
txtarea.value =  s1 +  abre cierra s3;
 for (
i=0i<=opcion.lengthi++) {
 
opcion[i]=prompt("Ingresa los elementos de la lista de uno en uno","");
 if ((
opcion[i]== null) || (opcion[i]== "undefined") || (opcion[i] == "") || (opcion[i] ==' ')) {
 var 
Cursor =  s1.length abre.length suma cierra.length;
 return(
Cursor); 
 }
 
txtarea.value =  s1 +  abre;
 for (
j=0j<=ij++) {
 
txtarea.value +=  "[*]" opcion[j] + "\n"
 }
 
txtarea.value += cierra s3;
 
suma += (opcion[i].length+4);
 }
}
}
 

function 
etiquetastilo (boton,tag) {
var 
txtarea document.getElementById("firma");
var 
iniCursor 0;
if ((
clientVer >= 4) && is_ie && is_win) {
txtSeleccion document.selection.createRange().text;
 if (
document.selection) {
  if (!
txtSeleccion) {
  
txtarea.focus();
  var 
Sel document.selection.createRange ();
  if (
tag <=3) {
  
document.selection.createRange().text ="[" +valor_tag[tag]+ "=" +valor_boton[boton]+ "][/"  +valor_tag[tag]+ "]";
  }
  else
  {
  
document.selection.createRange().text ="[" +valor_tag[tag]+ "][/"  +valor_tag[tag]+ "]";
  }
  
Sel.moveStart ('character', -txtarea.value.length);
  
iniCursor Sel.text.length//caracteres que deja atras
  //var  sumarPos= parseInt(num_caracteresAtras[boton]);
  
var Cursor iniCursor +  3;
  return(
Cursor);
  }
  
txtarea.focus();
  var 
Sel document.selection.createRange ();
  if (
tag <=3) {
  
document.selection.createRange().text "[" +valor_tag[tag]+ "=" +valor_boton[boton]+ "]" txtSeleccion "[/"  +valor_tag[tag]+ "]";
  }
  else
  {
  
document.selection.createRange().text "[" +valor_tag[tag]+ "]" txtSeleccion "[/"  +valor_tag[tag]+ "]";
  }
  
Sel.moveStart ('character', -txtarea.value.length);
  var 
StrSeleccion txtSeleccion.length;
  
iniCursor Sel.text.length;
  var  
sumarPosparseInt(num_caracteres[boton]);
  var 
Cursor iniCursor StrSeleccion  +  sumarPos;
  return(
Cursor);
 }
      }
 
// Firefox support 
else if (txtarea.selectionEnd && (txtarea.selectionEnd txtarea.selectionStart 0))
 {
 var 
selLargo txtarea.textLength;
 var 
selEmpz txtarea.selectionStart;
 var 
selFin txtarea.selectionEnd;
 var 
s1 = (txtarea.value).substring(0,selEmpz);
 var 
s2 = (txtarea.value).substring(selEmpzselFin);
 var 
s3 = (txtarea.value).substring(selFinselLargo);
 if (
tag <=3) {
 
txtarea.value =  s1 "[" valor_tag[tag] + "=" +valor_boton[boton]+ "]" +s2 "[/" +valor_tag[tag] + "]" s3;
 }
 else
 {
 
txtarea.value =  s1 "[" valor_tag[tag] + "]" +s2 "[/" +valor_tag[tag] + "]" s3;
 }
 var 
iniText s1.length;
 var 
textSel s2.length;
 var 
sumarPosparseInt(num_caracteres[boton]);
 var 
Cursor iniText textSel sumarPos;
 return(
Cursor); 
}
else
{
 var 
selLargo txtarea.textLength;
 var 
selEmpz txtarea.selectionStart;
 var 
selFin txtarea.selectionEnd;
 var 
s1 = (txtarea.value).substring(0,selEmpz);
 var 
s2 = (txtarea.value).substring(selEmpzselFin);
 var 
s3 = (txtarea.value).substring(selFinselLargo);
 if (
tag <=3) {
 
txtarea.value =  s1 "[" valor_tag[tag] + "=" +valor_boton[boton]+ "][/" +valor_tag[tag] + "]"  s2 s3;
 }
 else
 {
 
txtarea.value =  s1 "[" valor_tag[tag] + "][/" +valor_tag[tag] + "]"  s2 s3;
 }
 var 
Cursor txtarea.textLength recortar_posAtras[boton] - s2.length s3.length;
 return(
Cursor); 
 }
 
almznaCursor(txtarea);
}
function 
almznaCursor(textEl) {
 if (
textEl.createTextRangetextEl.caretPos document.selection.createRange().duplicate();
}
 
function 
PosicionCursor(pos) {
var 
txtarea document.getElementById("firma");
 
//Firefox
 
if (txtarea .setSelectionRange) {
  
txtarea .focus();
  
txtarea .setSelectionRange(pos,pos);
 }
 else if (
txtarea .createTextRange) {
  var 
rango txtarea .createTextRange();
  
rango.collapse(true);
  
rango.moveEnd('character'pos);
  
rango.moveStart('character'pos);
  
rango.select();
 }
}
function 
ImpEtiqueta(val,etta)
{
 
PosicionCursor(etiquetastilo(val,etta));
}
function 
ImpUrl(val,etta)
{
 
PosicionCursor(inserta_url(val,etta));
}
function 
Lista_Ord()
{
 
PosicionCursor(listaord());
}
function 
Lista_Des()
{
 
PosicionCursor(listades());
}
</script>
 
</head>
<body>
<form name="perfil">
<input type="button"  value="Times New Roman"  onClick="ImpEtiqueta(0,0);" />
<input type="button" value="Verdana" onClick="ImpEtiqueta(1,0);" />
<input type="button" value="Arial"  onClick="ImpEtiqueta(2,0);" />
<br>
<input type="button"  value="9"  onClick="ImpEtiqueta(3,1);" />
<input type="button" value="10" onClick="ImpEtiqueta(4,1);" />
<input type="button" value="11"  onClick="ImpEtiqueta(5,1);" />
<br>
<input type="button"  value="Rojo"  onClick="ImpEtiqueta(6,2);" />
<input type="button" value="Negro" onClick="ImpEtiqueta(7,2);" />
<input type="button" value="Blanco"  onClick="ImpEtiqueta(8,2);" />
<br>
<input type="button"  value="B" onclick="ImpEtiqueta(12,4);" />
<input type="button"  value="U" onclick="ImpEtiqueta(13,5);" />
<input type="button"  value="I" onclick="ImpEtiqueta(14,6);" />
<br>
<input type="button"  value="Left" onclick="ImpEtiqueta(9,3);" />
<input type="button"  value="Center" onclick="ImpEtiqueta(10,3);" />
<input type="button"  value="Right" onclick="ImpEtiqueta(11,3);" />
<br>
<input type="button"  value="URL" onclick="ImpUrl(15,7);" />
<br>
<input type="button"  value="Lordenada" onclick="Lista_Ord();" />
<br>
<input type="button"  value="Ldesordenada" onclick="Lista_Des();" />
<br><br>
 
<textarea id="firma" name="firma" rows="10" cols="80"></textarea>

</form>
</body>
</html> 
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 07/08/2007 a las 06:08