¡¡Hola, foristas!!
Estoy creando una aplicación donde se usa una mezcla entre Javascript, AJAX e IFrames. Un ejemplo se da en los popups: cuando dejas el cursor unos segundos sobre un elemento, se tramita una consulta via AJAX (HTTPRequest) y se escribe la respuesta en un IFrame nuevo. Otro ejemplo es cuando se edita un elemento, con un procedimiento muy parecido al de los popups.
Mi problema es que no he encontrado la manera de hacer que en dicho IFrame se muestren los acentos correctamente. Es decir, cuando llega la respuesta y la escribo dentro del IFrame (con document.write), los caracteres especiales (acentos, eñes, çes, etc) se muestran mal (con un interrogante en fondo negro). He comprobado el árbol DOM y he visto que el characterSet es UTF-8 para el document del IFrame.
He probado añadiendo el tag META típico del HTML en el HEAD para marcar el charset, pero no ha funcionado. También lo he intentado añadiendo el atributo charset='iso-8859-1' en el tag del script, pero tampoco. He intentado modificar mediante DOM las características del document, pero no es posible (atributo de solo lectura). También he probado añadiendo en el header de la consulta HTTPRequest el Accept-Charset, pero tampoco ha funcionado.
Algo que a lo mejor ayuda a determinar el problema es que, cuando se edita un elemento, hay una pantalla de confirmación que se muestra al hacer submit del formulario. Esta acción no ejecuta ningún JavaScript: es el submit de un formulario al apretar un botón. Pues la respuesta HTML se muestra en el mismo IFrame, pero esta vez mostrando los acentos correctamente.
¿A alguien se le ocurre la manera de hacer que esto funcione bien (como en el caso del submit)? La idea es mantener el AJAX, es decir, la solución no puede pasar por cambiar la HTTPRequest por un target='popup' ... popup.onload = muestraIFrame;.
¡¡Gracias de antemano!!
emi