2009-04-27 17 views
6

Mi diseño de una página me obliga a actualizar toda la página con html que he cargado a través de ajax.Cómo seleccionar y reemplazar toda la página con jQuery

$('html').replaceWith(data);

me da errores. ¿Algunas ideas?

+1

Por favor, publique el error y el contenido de los datos –

+0

¿La etiqueta html no contiene la secuencia de comandos que está reemplazando? Si usa la etiqueta corporal, asegúrese de que su html se ajuste. –

Respuesta

17

Uso corporal:

$('body').replaceWith(data); 
+2

Aunque esto no reemplazará la sección de encabezado, que podría requerirse para cargar los archivos necesarios de Javascript y CSS necesarios para representar la página correctamente. – ngeek

+0

En realidad, jQuery hace el trabajo de ejecutar cualquier javascript incrustado. Las hojas de estilo CSS se aplicarán absolutamente. Simplemente tenga en cuenta que las hojas de estilo CSS que ha eliminado permanecen en los conjuntos de reglas, no se eliminan. – cgp

8

que tenía algunos problemas con

$("body").replaceWith(newPage) 

darme algunos problemas css extraños, pero esto wored bien:

$("body").html(newPage); 
17

que tenían el mismo problema , pero esto no ayudó. Si es necesario sustituir también la etiqueta <head> (así, toda la página), también se puede hacer

document.write(newPage); 
+2

Sé que esta es una pregunta antigua, pero para futuras referencias, esto funciona, pero debes entender que puede dejar a los manejadores de scripts DOM antiguos y provocar fugas de memoria. – RajeshT

+0

Gracias. Funcionó mejor que cualquier otra solución que pude encontrar. –

2

comportamiento extraño por jQuery.replaceWith y jQuery.html cuando se ejecuta con selector de 'cuerpo'. Usted suelta el cuerpo de la etiqueta después de la llamada:

$('body').replaceWith('<body>New body</body>'); 

no sucede con cualquier otro selector como:

$('title').replaceWith('<title>New title</title>'); 

también jQuery.html no se duplica la etiqueta del cuerpo (como lo hace con otras etiquetas), y funciona como Vuelvaa cuando se le llama así:

$('body').html('<body>New body</body>'); 

espero que esto no es una zona gris de jQuery. O si lo es, no piensan en arreglarlo. Tengo aplicaciones donde uso $ ('body'). Html cuando debe usarse $ ('body'). ReplaceWith.

Cuestiones relacionadas