2010-08-25 14 views
5

cómo puedo cargar una página html dentro de un div. Con la etiqueta 'objeto' se está cargando, pero creo que no es un buen enfoque. No es un archivo externo. ¿El dojo es bueno para esto?cargando página html dentro de div

+2

sin usin g iframes :) – coder247

Respuesta

1

Esto también funciona ... usando dojo ...

<script type="text/javascript"> 
var url = dojo.moduleUrl("dijit.form", "help.html"); 
dojo.xhrGet({ 
    url: url, 
    load: function(html){ 
     dojo.byId("mycontent").innerHTML = html; 
    } 
}); 
</script> 

<div id="mycontent"> 

</div> 

Actualización:

En Dojo 1.7+, use require.toUrl en lugar de dojo.moduleUrl

3

No estoy seguro de lo que está buscando, pero si desea mostrar un documento HTML dentro de otro documento HTML, entonces creo que la única manera de hacerlo es usar iframe. Echa un vistazo a este tutorial: http://www.designplace.org/tutorials.php?page=1&c_id=1

Tal vez usted podría cargar el documento HTML y despojar los HEAD y embalar BODY elementos y luego insertar el código en el elemento DIV.

EDITAR: Ah, no iframes dijiste. Bueno, entonces propongo lo último. ^^

12

usar jQuery

$("#mydiv").load("myexternalfile.html"); 
+2

¿Filtra esos elementos no deseados como 'HTML',' HEAD' y 'BODY'? Si es así, entonces esta sería una solución bastante elegante. Mucho mejor que intentar hacer una inserción manual. – gablin

+1

No, extrae todos los html del 'myexternalfile.html' y luego los coloca dentro del div. – Starx

0

Todavía puedes usar jquery para cargar el contenido mediante una llamada ajax. Tome el resultado y elimine <body> y todo lo anterior, y </body> y todo lo que hay detrás. Puede usar expresiones regulares para asegurarse de incluir cualquier atributo de la etiqueta de cuerpo.

Luego te queda el cuerpo en bruto html, que puedes agregar al div usando jQuery.

jQuery.ajax({ 
    url: 'page.html', 
    success: function(data, textStatus, XMLHttpRequest) { 
     data = data.replace(/.*<body.*?>/gi,''); 
     data = data.replace(/</body>.*/gi,''); 
     jQuery('#myDiv').html(data); 
    } 
}); 

Mi expresión regular es un poco oxidado por lo que es posible que tenga que modificar eso :)

Cuestiones relacionadas