IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

addEventListener et événements ajax


Sujet :

JavaScript

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut addEventListener et événements ajax
    Bonjour,

    Je voudrais capturer les fils d'un forum de discussion (dans FUN) pour les afficher ensemble afin de faciliter une recherche par mot clé. Dans ce forum, il faut cliquer sur chacun des fils pour que la discussion s'affiche dans une div sur la même page. Lors du clic, une requête de type GET va chercher le post, mais cela prend du temps (4/5 sec.).
    Dans un script (que je colle dans une console), je parviens à cliquer sur chaque fil de discussion, et aussi à capturer le contenu du post, mais pas à être averti lorsque le post est chargé.
    Voici le script que j'utilise.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    // Ajouter une balise div ajout en fin de page si elle n'existe pas
    var div = document.getElementById("ajout")
    if (typeof(document.getElementsByClassName("ajout")[0] = 'undefined')) {
      document.getElementsByClassName("top-footer")[0].innerHTML = '<div id="ajout" style="color:#FFFFFF"></div id="ajout">';
    }
     
    function recordPost ()
    {
      // Capturer discussion-post et le placer dans une div du footer
      alert("Post reloaded");
      document.getElementById("ajout").innerHTML += '<div class="ajouts">' + document.getElementsByClassName("discussion-post")[0].innerHTML + '</div>';
    }
     
     
    document.getElementsByClassName("discussion-post")[0].addEventListener("load",recordPost, false);
     
    // recordPost(document.getElementsByClassName("discussion-post")
     
    // Ouvrir les fils de discussion un à un
    var pas;
    // var max = document.getElementsByClassName("forum-nav-thread-link").length;
    var max = 2;
    for (pas = 0; pas < max; pas++) {
      test=document.getElementsByClassName("forum-nav-thread-link")[pas].click();
      // ('<div class="discussion-post"></div>').load(console.log("chargé"));
      //window.setTimeOut(recordPost,4000) 
      console.log(pas);
    };
    D'une part, le addEventListener ne fonctionne pas et ne réagit pas lorsque ma div est rechargée ; d'autre part la boucle de clics va trop vite pour que chacun des posts ait le temps de s'afficher. Comment alors attendre le temps suffisant pour s'assurer que la div a été rechargée et la sauvegarder ensuite ?
    Ci-joint la page html en question.

    Merci de l'aide,
    Thibaud.
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip fun.zip (644,5 Ko, 74 affichages)

Discussions similaires

  1. remplir une combo suite à un évènement ajax avec dwr
    Par coco-sup dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/01/2013, 14h48
  2. Réponses: 1
    Dernier message: 03/05/2012, 11h29
  3. [AJAX] Emettre un son lors d'un évènement AJAX
    Par nicoprec dans le forum AJAX
    Réponses: 9
    Dernier message: 30/07/2011, 21h53
  4. [AJAX] événement après insertion code ajax
    Par jerome38000 dans le forum AJAX
    Réponses: 5
    Dernier message: 06/06/2009, 10h01
  5. [AJAX] Décalage entre évènement et renvoi serveur
    Par Aurias dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/06/2006, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo