javascript - tuto - ajax jquery



Remplacer la page HTML par des contenus récupérés via AJAX (5)

J'ai une page HTML avec une structure typique:

<html>
  <head>
   <script src="..." ></script>
   <style>...</style>
  </head>
  <body>
   content
  </body>
  <script>
    var success_callback = function(data) {
      // REPLACE PAGE CONTENT & STRUCTURE WITH "data"
    }
    ajax(url, params, success_callback);
  </script>
</html>

Pensez-vous que c'est possible? J'ai déjà essayé de donner un identifiant à la balise html et de faire $(id).replace(data); sans succès.

Ne me demandez pas pourquoi, mais c'est ce dont j'ai besoin (je travaille avec un site spécial "mashup builder" ... c'est une longue histoire).

EDIT : J'ai oublié de dire que les scripts dans le contenu reçu doivent être exécutés , même les scripts externes inclus en utilisant <script src="..."> .

https://ffff65535.com


Je suppose que vous utilisez jQuery ou quelque chose de similaire. Si vous utilisez jQuery, les éléments suivants devraient fonctionner:

<html>
<head>
   <script src="jquery.js" type="text/javascript"></script>
</head>
<body>
   content
</body>
<script type="text/javascript">
   $("body").load(url);
</script>
</html>

Le plus simple est de définir le nouveau contenu HTML en utilisant:

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

Tu pourrais essayer de faire

document.getElementById(id).innerHTML = ajax_response

Voici comment faire dans Prototype : $(id).update(data)

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

Mais document.getElementById(id).innerHTML=data devraient aussi fonctionner.

EDIT: Prototype et jQuery évaluent automatiquement les scripts pour vous.


le moyen le plus simple est

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




dom