Ver Mensaje Individual
  #13 (permalink)  
Antiguo 25/04/2012, 19:12
furoya
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Respuesta: textarea{text-indent:2em;} en OPERA no funciona

Lástima que no conozco el funcionamiento de la validación HTML5, pero no creo que sea difícil incluir un div. Seguramente en lugar de leer el value tendrá que ver el innerHTML (como quiera que se llamen en ese lenguaje).

Para que indente siempre, y no sólo cuando pierde el foco, se pueden usar los eventos onmouseover y onmouseout. Y para controlar mejor el "ancho" del espacio libre, se podría usar el caracter de "espacio de un em", que tiene justamente el ancho de 1em. Aunque no sé si estará en todas las fuentes...

Código:
<script type="text/javascript">

function indenta(T){
if (navigator.userAgent.indexOf("Opera")!=-1){
var alfa = T.value;
var ind = /\u2003\u2003/g; // dec 8195
//var salto = /\r\n/g;
alfa = alfa.replace(ind, "")//.replace(salto, "\r\n\u2003\u2003");
alfa = "\u2003\u2003" + alfa;

T.value = alfa;
}
}
</script>

Por supuesto que en los demás navegadores se usa CSS. Esto es un invento puesto acá como una ayuda, porque nadie va a buscar la solución de éste asunto en el foro de JS.

El detalle, por el que claramente es mejor el ejemplo de emprear, aparece al tener que borrar esos caracteres de más al enviar el valor, o al recibirlos en el server. Porque no serían parte del mensaje que te están enviando.