Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme d'ajax

    20 septembre 2006 à 19:27:14

    Bonjour, je ne sais pas si je suis dans la bonne catégorie pour parler d'ajax alors désolé si je me trompe.

    Voilà mon probleme : j'ai telecharger un tchat en ajax mais je n'arrive pas à le faire marcher sur Firefox, je m'explique le tchat se charge pendant quelques secondes puis les messages s'affiche sous IE et Opéra ça marche mais sous Firefox il n'affiche pas les message, le chargement ne s'arete pas et il me met des erreurs dans la consol. Voici la parti qui pose probleme :


    <script language="JavaScript" type="text/javascript">
    var nick="<?php print $nick; ?>";
    var nick=nick.replace(/\+/,"plus");
    function descendreTchat(){
            var scroll_top = parent.frames["tchat"].scrollHeight;
            parent.frames["tchat"].scrollBy(0,999999);
    }
    function showMessage(){
    checkList();
    var x_object2 = null;
            if(window.XMLHttpRequest){
                    x_object2 = new XMLHttpRequest();
            }else if(window.ActiveXObject){
                    x_object2 = new ActiveXObject("Microsoft.XMLHTTP");
            }else{
                    alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
            return;
            }
            x_object2.open("POST","voir_message.php",true);
            x_object2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            x_object2.send(null);
            x_object2.onreadystatechange = function(){
                    if(x_object2.readyState==4)
                    {
                            if(x_object2.status==200)
                            {
                                    parent.frames["listuser"].document.body.innerHTML = x_object2.responseText;
                                    descendreTchat();
                                    Layer1.style.visibility="hidden";
                            }
                    }
            }
    }
    function addMessage(){
    var x_object = null;
    if(window.XMLHttpRequest)
    {
            x_object = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    {
            x_object = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
            alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
            return;
    }
            x_object.open("POST","ajout_message.php",true);
            x_object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            msg.value=msg.value.replace(/\+/g,"plus");
            x_object.send("nick="+nick+"&msg="+msg.value);
            msg.value = "";
            showMessage();
    }
    function checkList(){
            var x_object3 = null;
                    if(window.XMLHttpRequest){
                            x_object3 = new XMLHttpRequest();
                    }else if(window.ActiveXObject){
                            x_object3 = new ActiveXObject("Microsoft.XMLHTTP");
                    }else{
                            alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
                    return;
            }
            x_object3.open("POST","liste_membre.php",true);
            x_object3.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            x_object3.send("nick="+nick);
            x_object3.onreadystatechange = function(){
                    if(x_object3.readyState==4){
                            if(x_object3.status==200){
                            parent.frames["listuser"].document.body.innerHTML = x_object3.responseText;
                            }
                    }
            }       
    }
    function admin(){
            dimensions="width="+(screen.width/3)+",height="+(screen.height/3)+",top=50,left=100,screenY=50,screenX=100,resizable=no,status=no,toolbar=no,location=no,menubar=no,directories=no";
            chose=window.open("administration.php","admin",dimensions);
    }
    function setStatus(stat){
            var x_object4 = null;
                    if(window.XMLHttpRequest){
                            x_object4 = new XMLHttpRequest();
                    }else if(window.ActiveXObject){
                            x_object4 = new ActiveXObject("Microsoft.XMLHTTP");
                    }else{
                            alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
                    return;
            }
            x_object4.open("POST","status_membre.php",true);
            x_object4.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            x_object4.send("user="+nick+"&stat="+stat);
            x_object4.onreadystatechange = function(){
                    if(x_object4.readyState==4){
                            if(x_object4.status==200){
                                            showMessage();
                                            msg.focus();
                            }
                    }
            }
    }
    function addSmiley(smiley){
            msg.value=msg.value+smiley;
            msg.focus();
    }              
    setInterval(showMessage,3000);
    //setInterval(checkList,5000);
    </script>


    Layer1 est la div qui contient le message "Le tchat est en chargement"


    Est ce que quelqu'un pourrait m'indiquer ce qui pourrait faire que ça ne marche pas sous Firefox s'il vous plaît ?


    Merci, ScIo.
    • Partager sur Facebook
    • Partager sur Twitter
      20 septembre 2006 à 20:56:53

      parent.frames n'existe que sous ie.

      Tu devrais utiliser un parent.document.getElementById() à la place.

      Et dans les lignes du type "parent.frames["listuser"].document.body.innerHTML", remplacer document par contentDocument. (pour firefox seulement, sur ie, il faut utiliser "document" !!)
      • Partager sur Facebook
      • Partager sur Twitter

      Probleme d'ajax

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown