Ver Mensaje Individual
  #14 (permalink)  
Antiguo 25/04/2012, 20:37
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: textarea{text-indent:2em;} en OPERA no funciona

Buen argumento @furoya, pero, en este tema como en muchos otros que pululan por el foro sigue faltando un argumento, se dice lo que se quiere hacer, pero no el para qué, en concreto, en este caso

mandar un email?
popular una base de datos con comentarios?
grabar un archivo de texto?
generar un html?
que el usuario simplemente vea la indentación?

Si fuese cualquiera de las cuatro primeras, para lo cual en definitiva vamos a tener que hacer uso de un lenguaje del lado del servidor, php en mi caso, creo que habría que simplificar las cosas, y manipular el formato con el mismo php, sobre todo en un comportamiento, que, trás las muchas pruebas que he hecho, es completamente irregular de un navegador a otro, y no solo me refiero a Opera.
Como sea y para terminar, dejo algunos cambios a mi primer script, dado que me percaté de que innerText no es soportado por firefox.
La que sigue es la que logra un comportamiento más parecido (no igual) en los diferentes navgadores

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. function editable(){
  10.    
  11. if (/Firefox/i.test(navigator.userAgent)){
  12. var texto = document.getElementById('texto').innerHTML;
  13. }else{
  14. var texto = document.getElementById('texto').innerText;
  15. }
  16.    
  17. document.getElementById('contenido').value = texto;
  18.  
  19. }
  20. //]]>
  21. </head>
  22.  
  23. <form action="editable.php" method="post" onsubmit="return editable();">
  24. <div id="texto" contenteditable="true" style="width: 400px; height: 400px;text-indent: 2em;border: solid 1px #333333"></div>
  25. <input type="hidden" value="" id="contenido" name="contenido" />
  26. <input type="submit" />
  27. </form>
  28. </body>
  29. </html>

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>titulo</title>
  6. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  7. </head>
  8. <body>
  9. <?php
  10. $texto = $_POST['contenido'];
  11. $texto = str_replace('<br>',"\n",$texto);
  12. file_put_contents('editable.txt',$texto);
  13. ?>
  14. <div>
  15. <?php echo "$texto"; ?>
  16. </div>
  17. </body>
  18. </html>
No se podrá quejar @quico5, que no tendrá oportunidad de aburrirse con nuestras disquicisiones.

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