Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/02/2013, 10:55
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Elementos dentro de campos de formulario

Convengamos primero que crear tu propio editor no es muy sencillo

Primero una aclaración, un textarea trata al código html como texto, así que no tendrías que utilizar necesariamente entidades html, salvo que si no lo hacés no te validaría como xhtml, por lo tanto si usas html sin convertirlo a entidades en el textarea, deberías utilizar el doctype de html5, con lo cual te validaría.

Con respecto a colorear un email, puede resolverse facilmente con un split() de javascript, claro que un editor supuestamente puede contener cosas bastante más complejas, por lo habría que utilizar métodos más complejos, expresiones regulares, etc.

Te dejo una demo, pero cuidado que el coloreado solo sirve para emails del tipo
[email protected], si hubiese más puntos en el email, p. ej [email protected], ya no te serviría

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function pasarAlDiv(ta){
  9. var v = document.getElementById(ta).value;
  10. document.getElementById('resultados').innerHTML =v;
  11. }
  12.  
  13. function colorear(){
  14. var v = document.getElementById('email').value;
  15. var a = v.split('@');
  16. var b = a[1].split('.');
  17. document.getElementById('resultados').innerHTML ="<span style='color: red'>" + a[0] + "</span>@<span style='color: green'>" + b[0] +"</span>.<span style='color: navy'>"+ b[1] +"</span>";
  18. }
  19. //]]>
  20. </head>
  21. <p>Editor 1</p>
  22. <textarea cols="60" rows="3" id="editor1">
  23. &lt;div style=&quot;background: lime; width: 100px; height: 100px;&quot;&gt;
  24. Contenido de div en textarea
  25. &lt;/div&gt;
  26. <button onclick="pasarAlDiv('editor1')">Pasar al div resultados</button>
  27. <p>Editor 2</p>
  28. <textarea cols="60" rows="3" id="editor2">
  29. <div style="background: orange; width: 100px; height: 100px;">
  30. Contenido de div en textarea
  31. </div>
  32. <button onclick="pasarAlDiv('editor2')">Pasar al div resultados</button>
  33. <p>Colorear</p>
  34. <input type="text" value="[email protected]" id="email" size="50" />
  35. <input type="button" onclick="colorear();" value="Colorear" />
  36. </form>
  37. <p>Div resultados</p>
  38. <div id="resultados"></div>
  39. </body>
  40. </html>

Notá que un textarea tiene entidades y el otro no

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.