Foros del Web » Programando para Internet » Javascript »

Editor WYSIWYG

Estas en el tema de Editor WYSIWYG en el foro de Javascript en Foros del Web. Hola gente, estoy haciendo un editor WYSIWYG muy sencillo (al margen del posible nuevo desafío) que me está dando problemas. La cuestión es que yo ...
  #1 (permalink)  
Antiguo 13/06/2010, 14:10
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Editor WYSIWYG

Hola gente, estoy haciendo un editor WYSIWYG muy sencillo (al margen del posible nuevo desafío) que me está dando problemas. La cuestión es que yo pongo un textarea para el texto y varios select para el tamaño o el color, y un checkbox para ver la vista previa o no; pero ni se ve la vista previa ni se ve el texto al final. Posteo el código para ver si localizan el error porque la consola de errores cada vez me dice una cosa diferente. Gracias de antemano.
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.  var color = document.getElementById('color');
  3.  var colorAct = color.options[color.selectedIndex].value;
  4.  var fondo = document.getElementById('fondo');
  5.  var fondoAct = fondo.options[fondo.selectedIndex].value;
  6.  var tamano = document.getElementById('tamano');
  7.  var tamanoAct = tamano.options[tamano.selectedIndex].value;
  8.  var texto  = document.getElementById('texto').value;
  9.  var final  = document.getElementById('textoFinal');
  10.  var vistaPrevia = document.getElementById('vistaPrevia');
  11.  var previo = document.getElementById('previa');
  12.  function edit(){
  13.   final.innerHTML = '<span style="color:' + color + '; background-color:' + fondo + '; font-size:' + tamano +';">' + texto + '</span>';
  14.  }  
  15.  function previa(){
  16.   vistaPrevia.innerHTML = '<span style="color:' + color + '; background-color:' + fondo + '; font-size:' + tamano +';">' + texto + '</span>';
  17.   if(previo.checked==true){
  18.    vistaPrevia.style.display = 'block';
  19.   }else{
  20.    vistaPrevia.style.display = 'none';
  21.   }
  22.  }
  23. </script>
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.  <head>
  4.   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5.   <title>Editor WYSIWYG</title>
  6.  </head>
  7.  <body>
  8.   <form id='miForm' action='' method='post'>
  9.    &nbsp;Color:<br />
  10.    <select id='color' onchange="previa();">
  11.     <option value='#F00'>Rojo</option>
  12.     <option value='#0F0'>Verde</option>
  13.     <option value='#00F'>Azul</option>
  14.     <option value='#FF0'>Amarillo</option>
  15.     <option value='#F0F'>Magenta</option>
  16.     <option value='#0FF'>Cyan</option>
  17.    </select>
  18.    <br /><br />  
  19.    &nbsp;Fondo:<br />
  20.    <select id='fondo' onchange="previa();">
  21.     <option value='#F00'>Rojo</option>
  22.     <option value='#0F0'>Verde</option>
  23.     <option value='#00F'>Azul</option>
  24.     <option value='#FF0'>Amarillo</option>
  25.     <option value='#F0F'>Magenta</option>
  26.     <option value='#0FF'>Cyan</option> 
  27.     <option value='#FFF'>Blanco</option>
  28.     <option value='#000'>Negro</option>
  29.    </select>
  30.    <br /><br />
  31.    &nbsp;Tamaño:<br />
  32.    <select id='tamano' onchange="previa();">
  33.     <option value='14px'>Pequeña</option>
  34.     <option value='20px'>Mediana</option>
  35.     <option value='24px'>Grande</option>
  36.    </select>
  37.    <br /><br />
  38.    <input type="checkbox" id='previa' onclick='previa();' />Vista previa
  39.    <br /><br />
  40.    <textarea id='texto' cols='20' rows='10' onkeyup="previa();" onkeydown="previa();"></textarea>
  41.    <br /><br />
  42.    <div id='vistaPrevia' style='display:none;'></div>
  43.    <input type="button" value="Obtener texto" onclick='edit();' />
  44.   </form>
  45.   <div id='textoFinal'></div>
  46.  </body>
  47. </html>

Saludos (:
  #2 (permalink)  
Antiguo 13/06/2010, 15:07
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Editor WYSIWYG

aparte de que lo que haces no es un verdadero WYSIWYG (ya que estos como el FCK usa un iframe oculto), tienes muchos errores en el código, debes decidir si vas ha usar comillas dobles o simples para el HTML si no confundes el interprete, además estas haciendo referencia a objetos antes de que el DOM se carge, y aún más tienes id con el mismo nombre de las funciones.

he mejorado el código, aún así no veo que realice algo ¿?:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.  <head>
  4.   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5.   <title>Editor WYSIWYG</title>
  6.   <script type="text/javascript">
  7.         var color ;
  8.         var colorAct ;
  9.         var fondo ;
  10.         var fondoAct ;
  11.         var tamano ;
  12.         var tamanoAct ;
  13.         var texto  ;
  14.         var vfinal  ;
  15.         var vistaPrevia ;
  16.         var previo ;
  17.  
  18.         function carga(){//para llamarla cuando el DOM se cargue
  19.             color = document.getElementById('color');
  20.             colorAct = color.value;
  21.             fondo = document.getElementById('fondo');
  22.             fondoAct = fondo.value;
  23.             tamano = document.getElementById('tamano');
  24.             tamanoAct = tamano.value;
  25.             texto  = document.getElementById('texto').value;
  26.             vfinal  = document.getElementById('textoFinal');
  27.             vistaPrevia = document.getElementById('vistaPrevia');
  28.             previo = document.getElementById('previa');
  29.         }
  30.  
  31.         function edit(){
  32.             vfinal.innerHTML = '<span style="color:' + color + '; background-color:' + fondo + '; font-size:' + tamano +';">' + texto + '</span>';
  33.         }  
  34.         function previaf(){
  35.             vistaPrevia.innerHTML = '<span style="color:' + color + '; background-color:' + fondo + '; font-size:' + tamano +';">' + texto + '</span>';
  36.             if(previo.checked==true){
  37.             vistaPrevia.style.display = 'block';
  38.             }else{
  39.             vistaPrevia.style.display = 'none';
  40.             }
  41.         }
  42.  
  43.  </head>
  44.  <body onload="carga();">
  45.   <form id="miForm" action="" method="post">
  46.    &nbsp;Color:<br />
  47.    <select id="color" onchange="previaf();">
  48.     <option value="#F00">Rojo</option>
  49.     <option value="#0F0">Verde</option>
  50.     <option value="#00F">Azul</option>
  51.     <option value="#FF0">Amarillo</option>
  52.     <option value="#F0F">Magenta</option>
  53.     <option value="#0FF">Cyan</option>
  54.    </select>
  55.    <br /><br />  
  56.    &nbsp;Fondo:<br />
  57.    <select id="fondo" onchange="previaf();">
  58.     <option value="#F00">Rojo</option>
  59.     <option value="#0F0">Verde</option>
  60.     <option value="#00F">Azul</option>
  61.     <option value="#FF0">Amarillo</option>
  62.     <option value="#F0F">Magenta</option>
  63.     <option value="#0FF">Cyan</option>  
  64.     <option value="#FFF">Blanco</option>
  65.     <option value="#000">Negro</option>
  66.    </select>
  67.    <br /><br />
  68.    &nbsp;Tamaño:<br />
  69.    <select id="tamano" onchange="previaf();">
  70.     <option value="14px">Pequeña</option>
  71.     <option value="20px">Mediana</option>
  72.     <option value="24px">Grande</option>
  73.    </select>
  74.    <br /><br />
  75. <!--un checkbox con el mismo nombre de la función previa ?-->
  76.    <input type="checkbox" id="previa" onclick="previaf();" />Vista previa
  77.    <br /><br />
  78.    <textarea id="texto" cols="20" rows="10" onkeyup="previaf();" onkeydown="previaf();"></textarea>
  79.    <br /><br />
  80.    <div id="vistaPrevia" style="display:none;"></div>
  81.    <input type="button" value="Obtener texto" onclick="edit();" />
  82.   </form>
  83.   <div id="textoFinal"></div>
  84.  </body>
  85. </html>

Etiquetas: editor, wysiwyg
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:16.