image
Inicio » Foros » JavaScript

JavaScript

acentos al crear options para un select

Volver al foro | Responder | Añadir nuevo tema


De: Telcontar
Fecha: 23/11/2006
Mensaje:

Hola, tengo una página con 3 controles select cuyas opciones van variando, y al crear esas opciones de forma dinámica mediante javascript no consigo mostrar acentos ni 'ñ' en el texto de dichas opciones. Ya he probado a usar las entities de HTML, pero entonces el texto de la opción muestra la entity en lugar de lo que representa:

esto es lo que he probado y no funciona:

var option=document.createElement("option");
option.text="-- selección --";
friendSelect.add(option,null);

o

var option=document.createElement("option");
option.text="-- selección --";
friendSelect.add(option,null);

tambien he hecho pruebas diversas con las funciones escape, unescape y nada


Quizás le interese
De: ZeroKilled
Util para: 0 personas

Fecha: 24/11/2006
Mensaje:

es curioso y me parece un tanto ridiculo. no de tu parte, queda claro. hice el mismo ejercicio que tu y lo comprobe en firefox, msie/win y opera resultando todos en la misma historia. este fue el ejercicio que comprobe pero con otros codigos adicional:

<input type='button' value='&aacute;' id='input' />
<script>
document.getElementById('input').value = '&aacute;';
document.write('&aacute;');
node = document.createTextNode('\u00e1');
acute = document.createTextNode('&eacute;');
document.body.appendChild(node);
document.body.appendChild(acute);
</script>

voy a explicar algo que no se si lo entiendas. en firefox es mejor hacer el ejercicio porque cuando hay un documento dinamico y haces una seleccion de cualquier contenido, firefox te da la opcion de ver el codigo fuente de lo que has seleccionado. cuando abre la ventana, realmente lo que hace tomar el contenido generado y mostrar el codigo fuente pero tambien incluyendo el codigo que tu has escrito. una vez entiendas esto, entonces puedes entender porque digo que es un tanto ridiculo este problema. hice el siguiente ejercicio:

<input type='text' />
<script>
node = document.createTextNode('\xe1');
// \xe1 es equivalente a &
document.body.appendChild(node);
</script>

en firefox, selecciona el contenido, le das boton secundario del raton y escoges ver codigo fuente seleccionado, veras que el signo & ahora se compone del entity apropiado. sin embargo, si haces este mismo proceso con el primer ejercicio, veras que con las vocales acentuadas no sucede asi, sino que muestra el carater original ('á' segun el ejercicio). mayormente esto sucede solo con caracteres que tienen un significado especial en HTML, tales como &, <, >, entre otros...

he llegado a la conclusion de que las entidades (entities) solo funcionan mientras estas se encuentren en el codigo fuente HTML. pero en el momento en que se cambia de procesador (en este caso el interprete javascript), las entidades dejan de fucnionar. sin embargo, la funcion document.write provoca que su contenido lo interprete el agente del navegador (userAgent) y no el javascript. por eso en el primer ejercicio funciona el entity dentro de document.write

solucion?
no creo que tengas muchas opciones, todas menos utilizar entities en javascript. o escribes el acento tu mismo, o utilizas escapes de caracteres mediante \, ya sea para codigo hexadecimal o unicode (\u00e1 ó \xe1) no se si existe otra solucion, queda claro que me estoy basando segun mi investigacion...





De: FUSURA
Util para: 0 personas

Fecha: 01/12/2006
Mensaje:

Estoy creando una pagina web, y necesito saber como ponerle un Foro.  les agradeceré bastante por su ayuda.

por favor cual quier comentario mandenlos al E-mai.

Gracias





Volver al foro | Responder | Añadir nuevo tema

Quizás le interese:

WebEstilo.com no se hace responsable de las opiniones que los usuarios puedan verter en cualquiera de los foros existentes.

Si te solucionó el problema pulsa en G+1


Gracias!






Comparte



Última modificación:31 de Agosto de 2017. Spain - Espa�a.
© 1998-2004 por . Todos los derechos reservados.