Estoy usando jQuery e intento cargar el cuerpo desde un archivo HTML externo.
Funciona si trato de cargar algunos div :
$('body').load('example.html #content');
Pero no puedo hacer algo como esto:
$('body').load('example.html body');
Desde http://api.jquery.com/load
jQuery usa la propiedad .innerHTML del navegador para analizar el documento recuperado e insertarlo en el documento actual. Durante este proceso, los navegadores suelen filtrar elementos del documento, como los elementos <html>, <title> o <head>. Como resultado, los elementos recuperados por .load() pueden no ser exactamente los mismos que si el navegador recuperara el documento directamente.
Al leer lo anterior, parece posible que su navegador solo devuelva el cuerpo innerHTML. Obviamente, esto debería ser lo mismo que solicitar body , pero tal vez esté causando un error porque no se encuentra body .
Sugeriría probar con un navegador diferente.
Cuando usa cargar sin un selector, elimina las etiquetas <html> , <head> y <body> , pero deja intactos todos los elementos secundarios de <head> y <body> , incluidas las etiquetas de título, guión y estilo. Sin embargo, cuando usa un selector, se aplica después de que se elimina la etiqueta del cuerpo , por lo que es imposible compararla.
En su lugar, envuelva todo el contenido de su cuerpo dentro de otra etiqueta y seleccione esa etiqueta en su lugar:
<html><head><title>Hello!</title</head> <body> <div id="jquery-load-point"> ... <!-- rest of body content --> </div> </body> </html>Ahora, puedes cargarlo así:
$("#destination").load("http://my.url/to/page #jquery-load-point");Si desea cargar todo el cuerpo, $('body').load('example.html'); debería ser suficiente.
Si no, ¿podría explicar por qué?
De todos modos, la solución proporcionada por Steve es la correcta.