Forum-webmaster
Technique - programmation => Javascript / DOM / Ajax => Message commencé par: mitmit le le 19-04-2007 a 16:58:05

Titre: problème de conflit avec ajax
Posté par: mitmit le le 19-04-2007 a 16:58:05

bonjour à tous !

j'ai un problème sur mon site (generationsfm.com) : j'utilise un template joomla (rt_carbo_youyou_v2), qui comprend un menu de type transmenu, un slideshow flash (module frontpage slideshow) et un script ajax qui lit périodiquement un fichier xml et en affiche le contenu en temps réel sur la page d'accueil

seulement voilà, il semble que ces trois éléments entre en conflit d'une manière ou d'une autre : si le slide show est activé, ni le menu ni l'affichage des infos du fichier xml ne se fait, en revanche lorsque ce slideshow est désactivé le script comme le menu fonctionnent parfaitement...

je débute avec joomla et ajax et là je ne sais vraiment pas quoi faire...

please help !!

merci ^^

Titre: Re:problème de conflit avec ajax
Posté par: iowa le le 21-04-2007 a 19:15:42

Comment on fait pour résoudre ton prob si on a pas la source ???

Titre: Re:problème de conflit avec ajax
Posté par: mitmit le le 23-04-2007 a 10:29:23

autant pour moi ^^

voilci le code qui gère l'affichage des infos xml :

Code:
<script language="JavaScript" type="text/javascript">

function getXhr() {
   var req = null;

   //firefox
if (window.XMLHttpRequest) {
      req = new XMLHttpRequest();
}
   
   //ie
else if (window.ActiveXObject) {
      try {
         req = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e) {
         req = new ActiveXObject("Microsoft.XMLHTTP");
      }
   }
   
   //non supporté
   else {
      alert("Fonction non supportée par le navigateur");
      req = false;
   }
   
   return (req);
}

function getTrack()
{
var req = getXhr();
      
req.onreadystatechange = function() {
                        
                        if (req.readyState == 4 && req.status == 200) {
                           var resultat = req.responseText;
                           document.getElementById('div_track').innerHTML=resultat;
                        }
                        
                      };
                     
   req.open("GET","http://generationsfm.com/ajax_track.php?act=track",true);
   req.send(null);
   setTimeout("getTrack()", 5000);
}

getTrack();
</script>


et le script qui configure une fonction censée résoudre les problèmes de conflits sur l'évènement onload (addLoadEvent) :

Code:
/*
Derived from a script by Alejandro Gervasio.
Modified to take class names by Andy Miller
*/

matchDivs=function(divclass){

var divs,contDivs,maxHeight,divHeight,d;
// get all <div> elements in the document
divs=document.getElementsByTagName('div');
contDivs=[];
// initialize maximum height value
maxHeight=0;
// iterate over all <div> elements in the document
for(var i=0;i<divs.length;i++){
// make collection with <div> elements with class attribute 'container'
    var reg = new RegExp("\\b" + divclass + "\\b");
if(reg.test(divs.className)){
d=divs;
contDivs[contDivs.length]=d;
// determine height for <div> element
if(d.offsetHeight){
divHeight=d.offsetHeight;                
}
else if(d.style.pixelHeight){
divHeight=d.style.pixelHeight;               
}
// calculate maximum height
maxHeight=Math.max(maxHeight,divHeight);
}
}
// assign maximum height value to all of container <div> elements
for(var i=0;i<contDivs.length;i++){
contDivs.style.height=maxHeight + "px";
}
}

//non invasive way to add function to onload()
function addLoadEvent(func) {

   var oldonload = window.onload;
   if (typeof window.onload != 'function') {
      window.onload = func;
   }
   else {
      window.onload = function() {
         if (oldonload) {
            oldonload();
         }
         func();
      }
   }
}

addLoadEvent(function(){
if(document.getElementsByTagName){
matchDivs("midbox-height");
matchDivs("botbox-height");
}
});


voilà il y a d'autres scripts qui entrent en jeu mais le message devient trop long si je les met :/
c'est assez corsé car ce n'est pas moi qui ai écrit le code donc pour trouver une erreur...

merci par avance ^^


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.