AJAX js non interprété dans page inclue via ajax

clara1
AJAX js non interprété dans page inclue via ajax

Voila j'ai un problème majeur une page inclue dans une autre pge via ajax de sorte à ne charger qu'une partie de page mais j'ai un problème le code javascript n'est pas pris en compte dans mes pages chargées, comment faire pour que celui soit pris en compte? avec eval()? maiscomment???

gauthier

bonjour clara1,

eval ne fera pas ton affaire malheureusement. J'ai rencontré ce problème il y a quelques temps, et voici le type de solution que j'y avais apporté alors :

dans ta fonction qui déclenche l'appel ajax, configure un callback de sorte que la fonction suivante soit appelée avec en argument le conteneur qui a reçu la page chargée par la requête ajax :

function parseJs(inputObj)
{
    var jsTags = inputObj.getElementsByTagName('SCRIPT');
    var head = document.getElementsByTagName("head")[0];
   
   // for this loop to work properly with IE,
   // all your script tags need to be placed inside
   // a body tag, and uppercased :
   //
   // <body>
   // <script src='/myscript.js' type='text/javascript'></script>
   // or
   // <script type='text/javascript'>myinstructions();</script>

   for(var no=0;no<jsTags.length;no++)
   {
      try {
         script = document.createElement('SCRIPT');
         
         if(jsTags[no].src) script.src = jsTags[no].src;
         else script.text = jsTags[no].text;
         script.type = 'text/javascript';
         head.appendChild(script);
      }
      catch(e)
      {
         var err = ''
         for(i in e) err = err+'\n'+i+' : '+e[i]
         alert(err)
      }
   }
}

les commentaires sont en anglais car j'ai fait un copier/coller d'un post que j'avais fait sur un site anglophone pour le code, désolé ;)

Pour le principe, il s'agit simplement de récupérer les scripts, et plutôt que de les évaluer directement (ce qui serait fait avec une portée locale et t'interdirait toute communication avec les autres éléments JS précédemment chargés), ces scripts sont rattachés à la page principale.

Cette fonction traite également les fichiers liés dans les pages chargées ().

Peut-être existe-t-il d'autres solutions plus simples, mais ça, ça marche ;)

Bon courage.

clara1

je te demande ou intégrer cette fonction car moi j'ai un fichier à part ajax.js dans lequel il y a ma fonction load_page qui gère le chargement des pagies fills dans le div de ma page principal, et ma page fille en question contien du code html, php et aussi du code js directement ecri sur la page.... est ce que ta fonction marcherait? où la placer? comment l'adaper? merci
J'ai deja essayé un paquet de truc donc maintenan jprefere avoir ttes les infos en main pour m'y lancer.... merci!