Encore des erreurs !

nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 10 juil. 2008 à 15:48
PetitRaptor Messages postés 4 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 5 octobre 2010 - 5 oct. 2010 à 20:03
Salut,

Et oui, c'est encore moi, vous devez vous dire que je suis un nul, c'est peut être vrai, lol

J'ai encore des erreurs sur mon code...

Si ça continue je vais dessiner une cible en plein milieu de mon écran, je vais prendre une masse et je vais taper dedans de toute mes forces (c'est bien ça qu'il faut faire bultez  looool , on se comprend )

Voici mon erreur(enfin la première) :

document.getElementById("nouveaux_messages") is null
http://xdelefosse.free.fr/chat_NRJ/fonctions.js
Line 45

Voici une deuxième erreur  :

Node was not found"  code: "8
http://xdelefosse.free.fr/chat_NRJ/fonctions.js
Line 116

Et voici la même erreur avec un petit plus  :

Node was not found"  code: "8
http://xdelefosse.free.fr/chat_NRJ/fonctions.js
onreadystatechange()()
Line 45

Extrait du fichier tableau.php :

                                  ----

                    ,
                    ,
                    Déconnection,
                 
               

Extrait du fichier fonction.js  :

function aff_message() {
    window['O_nouveauxMessages'] = document.createElement('div');
    O_nouveauxMessages.setAttribute('id','nouveaux_messages');
    document.getElementById('conversation').appendChild(O_nouveauxMessages);
   
    if(document.getElementById('nouveaux_messages')) {
        if(document.all) {
            document.getElementById('nb_message').attachEvent('onclick',function() {document.getElementById('conversation').removeChild(O_nouveauxMessages);});
        } else {
            document.getElementById('nb_message').addEventListener('click',function() {document.getElementById('conversation').removeChild(O_nouveauxMessages);},false); // ligne 116
        }
    }
   
    actu_liste();
}

function actu_liste() {
    var xhr_object = null;
   
    if(window.XMLHttpRequest)
        xhr_object = new XMLHttpRequest();
    else if(window.ActiveXobject)
        xhr_object = new ActiveXobject("Microsoft.XMLHTTP");
    else{
        alert("Votre navigateur n'est pas compatible avec XMLHttpRequest");
        return;
    }
   
    xhr_object.open("POST", "actu_liste.php", true);
   
    xhr_object.onreadystatechange = function () {
        if (xhr_object.readyState== 4) {
            if (xhr_object.status == 200) {
                document.getElementById('nouveaux_messages').innerHTML = xhr_object.responseText; // ligne 45
            }
        }
    }
   
    xhr_object.send('');
}

Avez vous une solution

Merci de vous pencher sur mon problème !

a++

Si la réponse vous convient, pensez : Réponse acceptée !

11 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
10 juil. 2008 à 16:10
Re,

document.getElementById('nb_message').addEventListener('click',function() {document.getElementById('conversation').removeChild(O_nouveauxMessages);},false); // ligne 116

Toujours même remarque :
document.getElementById('nb_message').addEventListener('click',function() {document.getElementById('conversation').removeChild('nouveaux_messages');},false);

Petite question :
Que se passera-t-il si entre le moment où tu fais ton xhr_object.send('') et la réception de la réponse, l'utilisateur clique sur 'nb_message' ?

Autre point :
nb_message dispose déjà d'une fonction onclick, auquel tu ajoutes une nouvelle fonction :document.getElementById('nb_message').addEventListener....
Mais cette nouvelle fonction n'est pas supprimée après la suppression de 'nouveaux_messages', que va-t-il se passer si 'nouveaux_messages' a déjà été supprimé ?

Nickadele
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
10 juil. 2008 à 16:18
merci nikadele, je vais voir ça !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
10 juil. 2008 à 16:21
ça marche pas, ça me retourne une exeption !

[Exception... "Could not convert JavaScript argument arg 0 [nsIDOMHTMLDivElement.removeChild]"  nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: http://xdelefosse.free.fr/chat_NRJ/fonctions.js :: anonymous :: line 116"  data: no]
http://xdelefosse.free.fr/chat_NRJ/fonctions.js
Line 116

et ça ne ferme plus mon div !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
11 juil. 2008 à 11:13
comment je dois faire ?

Si la réponse vous convient, pensez : Réponse acceptée !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
11 juil. 2008 à 15:42
J'ai regardé ce qui se passait au niveau du DOM.
Lors du premier click sur 'nb_message', tout se passe bien, le div est bien créé et je n'ai pas d'erreur.
Par contre dès que je click une seconde fois et +, plus rien ne va, sauf qu'au second click le div est bien supprimé mais après ç'est la m.....
Erreur comme tu signale et plus rien ne se passe.

Est-ce normal que c'est lâ même zone 'nb_message' qui crée et supprime les éléments, ne faudrait-il pas en visager une séparation des fonctions ?
Quel est l'objectif lorsque tu crées et supprimes la zone 'nouveaux_messages'?
Pourquoi l'intégrer dès le départ et la remplir ou vider en lieu et place de la création, suppression ?

Nickadele
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
11 juil. 2008 à 16:00
re nickadele,

merci de ne pas me laisser tomber !

L'objectif de créer la zone c'est pour afficher les pseudo des membres qui ont écris aux membre connecté un message qu'il n'a pas encore lu !

L'objectif de supprimer la zone c'est de ne plus la voir !

Pour la séparation des fonction je veus bien mais je ne sais pas comment faire et n plus j'ai très peu de temps !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
11 juil. 2008 à 16:30
Donc, si je comprend bien lorsque l'utilisateur cliquera sur 'nb_message' il verra s'afficher une liste de pseudo.
D'où provient cette liste, car actuellement il n'y a pas de source (data) qui alimente à ce niveau ?
Tu pourrais envisager que lorsque l'utilisateur clique sur 'nb_message', la fameuse liste se vide (si elle existe déjà) ensuite request des pseudo sur le serveur, suivi du résultat du request qui est placé dans la liste. Est-ce vers ça que tu souhaites aller ?

Nickadele
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
11 juil. 2008 à 17:11
Cette liste provient d'une BDD mysql qui contient tout les messages envoyés ...

Les informations, sont récupèré par un script php !

Et sont ensuite affiché coté client avec ajax !

Mais dans ta solution, pourquoi vider la liste, moi ce que je veus c'est la supprimer pour qu'elle ne soit plus visible !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
11 juil. 2008 à 17:23
Supprimer ou vider c'est kiff kiff !
En fait à quel moment supprimes-tu un élément de la liste ?

Nickadele
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
11 juil. 2008 à 19:00
je supprime pas un élément, je supprime la liste quand on clique dessus si elle existe !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
PetitRaptor Messages postés 4 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 5 octobre 2010
5 oct. 2010 à 20:03
Salut,

J'ai à peu près le même problème moi aussi :s

Ma page en question est un faux Windows, un menu démarrer etc..., j'ouvre la fenetre Logs, et lorsque je clique sur le bouton close, l'erreur suivante apparrait :

uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMHTMLDivElement.removeChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://www.petit-raptor.fr/game/desktop.php# :: onclick :: line 1" data: no]


Voilà la fonction JS en question :

var fenetre = document.createElement('div');
            fenetre.id = 'fenetre_'+app;
            fenetre.title = 'Mes '+app;
            fenetre.style.width = '50%';
            fenetre.style.height = '50%';
            fenetre.style.position = 'absolute';
            fenetre.style.top = '20%';
            fenetre.style.right = '25%';
            fenetre.style.border = '1px solid black';
            fenetre.style.margin = '0px';
            fenetre.style.padding = '5px';
            fenetre.style.backgroundColor = 'white';
            fenetre.style.display = 'block';
            
            var title = document.createElement('div');
            title.id = 'title_'+app;
            title.style.padding = '0px';
            title.style.margin = '0px';
            title.style.border = '1px solid black';
            title.style.height = '35px';
            title.style.color = 'white';
            title.style.background = 'url(\'images/bg_taches.png\') repeat-x 0px 0px';
            
            var img_title = document.createElement('img');
            img_title.src = 'images/icones_nixus/32x32/Edit.png';
            
            var texte_title = document.createTextNode(fenetre.title);
            
            var reduc = document.createElement('img');
            reduc.src = 'images/icones_nav/PNG/Blue/24/del.png';
            reduc.id = 'button_reduc';
            reduc.style.cursor = 'pointer';
            reduc.onClick = function()
            {
                document.getElementById('fenetre_'+app).style.display = 'none';
            }
            reduc.setAttribute("onClick","document.getElementById('fenetre_Logs').style.display = 'none';");
            
            var close = document.createElement('img');
            close.src = 'images/icones_nav/PNG/Blue/24/close.png';
            close.id = 'button_close';
            close.style.cursor = 'pointer';
            close.onClick = function()
            {
                document.getElementById('bureau').removeChild('fenetre'+app);
            }
            close.setAttribute("onClick","document.getElementById('bureau').removeChild('fenetre_Logs');");
            
            var button_tache = document.createElement('div');
            button_tache.id = 'tache_'+app;
            button_tache.style.width = '99%';
            button_tache.style.cursor = 'pointer';
            button_tache.style.height = '90%';
            button_tache.style.border = '1px solid white';
            button_tache.style.borderLeft = '5px solid white';
            button_tache.onClick = function()
            {
                if(document.getElementById('fenetre'+app).style.display == 'block')
                {
                    document.getElementById('fenetre_'+app).style.display = 'none';
                }
                else
                {
                    document.getElementById('fenetre_'+app).style.display = 'block';
                }
            }
            button_tache.setAttribute("onClick","if(document.getElementById('fenetre_Logs').style.display 'block'){ document.getElementById('fenetre_Logs').style.display 'none'; }else{ document.getElementById('fenetre_Logs').style.display = 'block'; }");
            
            var text_button_tache = document.createTextNode(app);
            
            document.getElementById('bureau').appendChild(fenetre);
            document.getElementById('fenetre_'+app).appendChild(title);
            document.getElementById('title_'+app).appendChild(img_title);
            document.getElementById('title_'+app).appendChild(texte_title);
            document.getElementById('title_'+app).appendChild(reduc);
            document.getElementById('title_'+app).appendChild(close);
            document.getElementById('taches','content').appendChild(button_tache);
            document.getElementById('tache_'+app).appendChild(text_button_tache);
        }


Et voilà, lorsque je clique sur l'image 'close', l'erreur au dessus apparrait dans firebug et rien ne se passe coté page :s

Quelqu'un à la solution ?

Sa aidera aussi surement le propriétaire de ce topic ^^
0
Rejoignez-nous