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 :

onclick qui ne répond pas de manière aléatoire


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut onclick qui ne répond pas de manière aléatoire
    Bonjour,

    Dans une page Php appellée des centaines de fois par jour par utilisateur dans une application intranet, j'utilise une fonction javascript sur le onClick d'une image pour afficher un 'div'.

    De de temps à aute et de manière totalement aléatoire, le onclick ne fonctionne pas (mon 'div' ne s'affiche pas).

    Voici d'abord le script qui est utilisé pour masquer le 'div' au chargement de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script language='javascript'>
     document.getElementById('donneesCible').style.display = 'none';
     document.getElementById('divCampagne').style.display = 'none';
    </script>
    Voici le onclick sur mon image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img id='plusPresentationCibe' src='../images/plus.gif' border='0' align='absmiddle' onclick=\"showDiv('" . $presentationCible . "', 'donneesCible', 'divImg');\">
    Voici le 'div' en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id='donneesCible'>";
     
    include("../fichiersInclusion/enregCible.inc");
     
    echo "</div>
    Enfin, voici la fonction javaScript appellée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function showDiv(presentation, idDiv, divImage)
     {
      document.getElementById(idDiv).style.display = 'block';
      document.getElementById(divImage).innerHTML = "<img src='../images/moins.GIF' border='0' align='absmiddle' onclick=\"hideDiv('" + presentation + "', '" + idDiv + "', '" + divImage + "');\">&nbsp;&nbsp;" +  presentation + "</div>";
     }
    Quelqu'un aurait une idée de la provenance du problème? Du fait que cela arrive de manière totalement aléatoire est perturbant et surtout compliqué à débugger.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    n'y aurait il pas des caractères à echapper dans les variables ?
    sinon passe par le DOM pour insérer l'image dans la page plutot que par le innerHTML ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.createElement('img') ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Bonsoir et merci beaucoup pour ta réponse.

    Pour moi, le problème se situe au moment où la page est loadée, car c'est le clic sur l'image "+" qui ne produit aucun résultat (et seulement de temps en temps).

    Donc, c'est au niveau de ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img id='plusPresentationCibe' src='../images/plus.gif' border='0' align='absmiddle' onclick=\"showDiv('" . $presentationCible . "', 'donneesCible', 'divImg');\">&nbsp;&nbsp;" .  $presentationCible
    Donc là, je n'utilise pas le innerHtml.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    De plus, pour mettre à jour mon 'div' contenant l'image ("-" ou "+") pour faire apparaître ou disparaître le 'div' contenant l'information, je ne vois pas comment ne pas utiliser le innerHTML...

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Voilà, j'ai résolu mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img id='imgCibe' src='../images/plus.gif' border='0' align='absmiddle' onclick=\"showDiv('donneesCible','imgCibe');\">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function showDiv(idDiv, divImg)
     {
      document.getElementById(divImg).src = '../images/moins.gif';
      document.getElementById(divImg).onclick = function () {hideDiv(idDiv, divImg)};
      document.getElementById(idDiv).style.display = 'block';
     }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function hideDiv(idDiv, divImg)
     {
      document.getElementById(divImg).src = '../images/plus.gif';
      document.getElementById(divImg).onclick = function () {showDiv(idDiv, divImg)};
      document.getElementById(idDiv).style.display = 'none';
     }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Évènement onclick qui ne fonctionne pas avec FireFox
    Par kilian67 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 19/09/2008, 11h34
  2. Dossier qui "ne répond pas"
    Par Hyoga dans le forum Windows XP
    Réponses: 8
    Dernier message: 09/07/2008, 23h48
  3. C# Tuer une application qui ne réponds pas
    Par mayekeul dans le forum C#
    Réponses: 5
    Dernier message: 11/01/2008, 16h08
  4. [VB.NET]Form qui ne répond pas
    Par Pocel dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/07/2006, 10h42
  5. Evenement OnClick qui ne fonctionne pas sous firefox
    Par frechy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/12/2005, 16h06

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