Sostituisci la pagina HTML con i contenuti recuperati tramite AJAX

Ho una pagina HTML con una struttura tipica:

   ...   content   var success_callback = function(data) { // REPLACE PAGE CONTENT & STRUCTURE WITH "data" } ajax(url, params, success_callback);   

Pensi che sia ansible ? Ho già provato a dare un tag html come id e a fare $(id).replace(data); senza successo.

Non chiedermi perché, ma è quello di cui ho bisogno (sto lavorando con uno speciale sito “mashup builder” … è una lunga storia).

EDIT : Ho dimenticato di dire che gli script nel contenuto ricevuto devono essere eseguiti , compresi gli script esterni inclusi usando .

prova questo con jQuery :

 $('body').load( url,[data],[callback] ); 

Maggiori informazioni su docs.jquery.com / Ajax / load

Il modo più semplice è impostare il nuovo contenuto HTML usando:

 document.open(); document.write(newContent); document.close(); 

Ecco come farlo in Prototype : $(id).update(data)

E jQuery : $('#id').replaceWith(data)

Ma anche document.getElementById(id).innerHTML=data dovrebbero funzionare.

EDIT: Prototype e jQuery valutano automaticamente gli script per te.

Potresti provare a farlo

 document.getElementById(id).innerHTML = ajax_response 

Suppongo che tu stia usando jQuery o qualcosa di simile. Se stai usando jQuery, allora il seguente dovrebbe funzionare:

      content    

Non puoi semplicemente provare a sostituire il contenuto del corpo con il gestore del documento?

se la tua pagina è questa:

   blablabla    

Basta usare il documento. Corpo per sostituire il corpo.

Questo funziona per me. Tutto il contenuto del tag BODY è sostituito dal innerHTML specificato. Se devi anche cambiare il tag html e tutti i child devi controllare quali tag del ‘documento’. sono in grado di farlo.

Un esempio con scripting javascript al suo interno:

   blablabla   

In questo modo puoi eseguire script javascript all’interno del nuovo contenuto. Non dimenticare di sfuggire a tutte le virgolette doppie e singole, o non funzionerà. fuggire in javascript può essere fatto attraversando il codice e mettendo una barra rovesciata di fronte a tutte le virgolette singole e doppie.

Ricordatevi che lo scripting lato server come php non funziona in questo modo. Poiché PHP è uno script sul lato server, è necessario elaborarlo prima di caricare una pagina. Javascript è un linguaggio che funziona sul lato client e quindi non può triggersre la rielaborazione del codice php.

il modo più semplice è

 $("body").html(data);