Retroceder   Foros del Web > Diseño de Sitios web > Web general

Respuesta
 
Herramientas Desplegado
Antiguo 05-abr-2008, 21:42   #1 (permalink)
daPhyre llegará a ser famoso muy prontodaPhyre llegará a ser famoso muy pronto
 
Avatar de daPhyre
 
Fecha de Ingreso: marzo-2008
Ubicación: Idle. Return on 18/08
Mensajes: 734
Pregunta Error con acentos con carga asíncrona

Acabo de implementar en mi página web una carga asincrona con javascript. El problema es que al llamar a otra página para cargarla dentro de la principal, las letras con acento se cargan como un cuadro, removiendo además las dos siguientes letras a esta. ¿Alguien podría decirme como corrijo esto para mostrar la información de forma correcta?
daPhyre está desconectado   Responder Citando
Antiguo 06-abr-2008, 12:43   #2 (permalink)
ElJavista ha deshabilitado el karma
 
Avatar de ElJavista
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 567
Enviar un mensaje por MSN a ElJavista
Re: Error con acentos con carga asíncrona

A ver, aquí falta un dato, estás trabajando con el objeto xmlHttpRequest y PHP? como lo haces? Si es con PHP hay una solución, todo el contenido que se imprime aplícale la función urlencode, eso hará que el contenido esté con código url, después en JavaScript a aplicas ese contenido la función unescape y luego lo usas para mostrar el contenido. Espero que te sirva.
ElJavista está desconectado   Responder Citando
Antiguo 06-abr-2008, 19:42   #3 (permalink)
daPhyre llegará a ser famoso muy prontodaPhyre llegará a ser famoso muy pronto
 
Avatar de daPhyre
 
Fecha de Ingreso: marzo-2008
Ubicación: Idle. Return on 18/08
Mensajes: 734
Re: Error con acentos con carga asíncrona

Lo hago directo con JavaScript ya que mi página está en un servidor gratuito. El código que uso es este, enviando como parámetro url una página html y para id el div en el que se cargará:

Código:
function loadurl(url, id){
	var pagecnx = crearXMLHttpRequest();
	pagecnx.onreadystatechange=function()
	{
		setpage(pagecnx, id)
	}
	pagecnx.open('GET', url, true)
	pagecnx.send(null)
}

function setpage(pagecnx, id){
	if (pagecnx.readyState == 4 && (pagecnx.status==200 || window.location.href.indexOf("http")==-1))
	document.getElementById(id).innerHTML=pagecnx.responseText
}

function crearXMLHttpRequest() {
	var xmlHttp=null;
	if (window.ActiveXObject) 
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	else 
		if (window.XMLHttpRequest) 
			xmlHttp = new XMLHttpRequest();
	return xmlHttp;
}
¿Puedo solucionar mi problema?
daPhyre está desconectado   Responder Citando
Antiguo 07-abr-2008, 14:51   #4 (permalink)
ElJavista ha deshabilitado el karma
 
Avatar de ElJavista
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 567
Enviar un mensaje por MSN a ElJavista
Re: Error con acentos con carga asíncrona

Claro que puedes solucionar tu problema, simplemente implementa una función que convierta los carácteres latinos a sus respectivas entidades HTML, una opción sería esta función:

Código:
function htmlent(txt) {
              txt = txt.replace(/á/g, "á");
              txt = txt.replace(/é/g, "é");
              txt = txt.replace(/í/g, "í");
              txt = txt.replace(/ó/g, "ó");
              txt = txt.replace(/ú/g, "ú");
              txt = txt.replace(/ñ/g, "ñ");
              return txt;
}
Esta función la aplicas de esta manera:

Código:
function setpage(pagecnx, id){
	if (pagecnx.readyState == 4 && (pagecnx.status==200 || window.location.href.indexOf("http")==-1))
	document.getElementById(id).innerHTML=htmlent(pagecnx.responseText);
}
Espero que te sirva.
ElJavista está desconectado   Responder Citando
Antiguo 08-abr-2008, 09:13   #5 (permalink)
daPhyre llegará a ser famoso muy prontodaPhyre llegará a ser famoso muy pronto
 
Avatar de daPhyre
 
Fecha de Ingreso: marzo-2008
Ubicación: Idle. Return on 18/08
Mensajes: 734
Re: Error con acentos con carga asíncrona

¡Muchisimas gracias por la solución! Es justo lo que necesitaba.
daPhyre está desconectado   Responder Citando
Antiguo 09-abr-2008, 10:28   #6 (permalink)
daPhyre llegará a ser famoso muy prontodaPhyre llegará a ser famoso muy pronto
 
Avatar de daPhyre
 
Fecha de Ingreso: marzo-2008
Ubicación: Idle. Return on 18/08
Mensajes: 734
Re: Error con acentos con carga asíncrona

Ya lo he probado. Es extraño, pero no me ha funcionado el código. Te dejo un link para que lo cheques y me digas si puse algo mal por favor, o si identificas el problema en caso sea solucionable. Gracias de nuevo...

http://mx.geocities.com/daphyreweb/test/
daPhyre está desconectado   Responder Citando
Antiguo 09-abr-2008, 14:08   #7 (permalink)
ElJavista ha deshabilitado el karma
 
Avatar de ElJavista
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 567
Enviar un mensaje por MSN a ElJavista
Re: Error con acentos con carga asíncrona

El problema es que el objeto XMLhttpRequest al obtener el texto no reconoce los carácteres latinos, está de más esa función que te he dado porque de antemano el texto que se le pasa no contiene ningún carácter latino, en su lugar hay un cuadradito, que me parece que es un carácter que simplemente no se reconoce. Bien, tal y como lo planteas yo no encuentro manera de solucionarlo, pero me pregunto porqué tienes que ponerle carácteres con acentos si puedes usar las entidades html, cuando trabajas con php no hay problema porque utilizas la función htmlentities para tranformar los carácteres latinos a su respectiva entidad html, pero en tu caso trabajas solo con html, simplemente escribe todo con entidades.
ElJavista está desconectado   Responder Citando
Antiguo 09-abr-2008, 19:04   #8 (permalink)
daPhyre llegará a ser famoso muy prontodaPhyre llegará a ser famoso muy pronto
 
Avatar de daPhyre
 
Fecha de Ingreso: marzo-2008
Ubicación: Idle. Return on 18/08
Mensajes: 734
Re: Error con acentos con carga asíncrona

Creo que con entidades te refieres a los &;...

Respondiendo a eso, pues la verdad es más sencillo escribirlo directo, pero al final supongo que tendré que usarlos aunque sea un poco más de trabajo. Y respecto al PHP, verás, que uso un servidor gratuito que no me lo permite.

De cualquier forma, gracias por tu tiempo, me ayudó tambien a aprender más cosas sobre JavaScript y otros detalles. Gracias por todo.
daPhyre está desconectado   Responder Citando
Antiguo 10-abr-2008, 17:01   #9 (permalink)
ElJavista ha deshabilitado el karma
 
Avatar de ElJavista
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 567
Enviar un mensaje por MSN a ElJavista
Re: Error con acentos con carga asíncrona

Hay servidores gratuitos que soportan PHP, solo búscalos si te hacen falta y sino pues usa el dream que genera automáticamente las entidades html (así se llaman, es su nombre oficial).
ElJavista está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 19:37.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93