Foros del Web » Creando para Internet » CSS »

No consigo cargar html en DIV

Estas en el tema de No consigo cargar html en DIV en el foro de CSS en Foros del Web. Hola maestros! estuve mirando y encontré una serie de códigos JAVASCRIPT que en teoría permiten cargar un HTML dentro de un <div> contenido en otro ...
  #1 (permalink)  
Antiguo 15/09/2010, 04:48
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 0
No consigo cargar html en DIV

Hola maestros!

estuve mirando y encontré una serie de códigos JAVASCRIPT que en teoría permiten cargar un HTML dentro de un <div> contenido en otro HTML. El que he colocado funciona en Firefox,Safari y Opera pero en Explorer me da "error en página" y en Chrome ni lo menta :P

el JAVASCRIPT, colocado en el HEAD es el siguiente:

Código:
<script language="javascript">

// Esta función cargará las paginas
function cargaendiv(url, contenido){
var pagina_requerida = false
if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest()
} 
else if (window.ActiveXObject){ // pero si es IE
try {
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){ // en caso que sea una versión antigua
try{
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
pagina_requerida.onreadystatechange=function(){ // función de respuesta
cargarpagina(pagina_requerida, contenido)
}
pagina_requerida.open('GET', url, true) // asignamos los métodos open y send
pagina_requerida.send(null)
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, contenido){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(contenido).innerHTML=pagina_requerida.responseText
} 

</script>
y el código HTML donde lo llamo es tal que así:

Código HTML:
<body>
<div id="contenedor">	
<div class="menuhoriz">
			<ul>
        		<li><a href="javascript:cargaendiv('news.html', 'contenido');">PORTADA</a></li>
        		<li><a href="javascript:cargaendiv('gallery.html', 'contenido');">PHOTO GALLERY</a></li>
</ul>
		</div>
		
		<div id="contenido"></div>
</div>
</body> 
¿alguien sabe como solucionar esa discrepancia por favor?(y explicarme el fallo a ser posible, jeje)

Muchas gracias!!
  #2 (permalink)  
Antiguo 15/09/2010, 08:04
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: No consigo cargar html en DIV

del lado del servidor tienes la funcion get_file_contents() con ella podras carga la pagina completa
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 15/09/2010, 14:42
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: No consigo cargar html en DIV

Tal vez lo que quiere el es obtenerlo dinamicamente, en este caso usando Ajax.

Te recomiendo recurrir a las funciones que te da JQuery o algun otra libreria para hacerlo más facil si no dominas Ajax a secas.

IE siempre trae problemas de cualquier tipo :P



PD: y a todo esto, el mensaje va en Ajax no en CSS

Última edición por Ribon; 15/09/2010 a las 14:50
  #4 (permalink)  
Antiguo 17/09/2010, 13:01
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: No consigo cargar html en DIV

Hola amigxs,

efectivamente, no quiero cargar toda la página cada vez.

Os cuento la idea a ver si se os ocurre como solucionarlo (a lo mejor es mucho más sencillo de lo que lo estoy haciendo!!)

La cosa es una página para un DJ, que quisiera tener siempre sonando un loop de minimal mientras está abierta. Pensaba colocar un miniarchivo flash (10x10px) con la musica en la cabecera (ubicada en un div de la portada) e ir cargando los contenidos del menu (los otros html: news, sesiones, contratacion, etc) en otro <div> de la misma página.

Con frames no podría hacerlo porque hay que definirlos (cierto?) y la página podrá ir creciendo en vertical (tipo blog) en por ejemplo la seccion de las news o la galeria fotográfica...


Bien. lo cierto es que de javascript no tengo apenas idea, pero esta funcion parecia funcionar y de hecho lo hace menos en explorer y en Chrome.

para IE incluye una excepcion que debería salvar el fallo:

Código:
else if (window.ActiveXObject){ // pero si es IE
try {
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){ // en caso que sea una versión antigua
try{
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
pagina_requerida.onreadystatechange=function(){ // función de respuesta
cargarpagina(pagina_requerida, contenido)
}
pagina_requerida.open('GET', url, true) // asignamos los métodos open y send
pagina_requerida.send(null)
}
pero me da estos mensajes de error:

IE:

"protocolo desconocido, dirección (URL): javascript:cargaendiv('news.html', 'contenido');"

CHROME:
""Cross origin requests are only supported for HTTP."

que no se como solucionar. Por favor, alguien me puede orientar?? Graxias!

Etiquetas: html, maquetacion, navegadores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:16.