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 :

[DOM] Passage de paramètre à une fonction : echec


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut [DOM] Passage de paramètre à une fonction : echec
    Bonsoir,

    Je travaille sur un très modeste site web : http://location.btz.free.fr/

    Le menu de gauche est chargé par une fonction Javascript.
    En somme, chaque page de mon site charge le menu en appelant cette fonction. Chaque page s'identifie par le paramètre de la fonction ("cuisine", "salon", etc.). Cela me permet de personnaliser le menu en fonction de la page appelante.
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    function import_menu(page)
    {
      // A chaque bouton du menu,
      // - on charge le bouton avec le texte souligné si c'est celui de la page appelante
      // - on charge le bouton sans le texte souligné si ce n'est pas celui de la page appelante
      // Ce système permet de savoir sur quelle page on est actuellement : le bouton "cuisine" est souligné, par exemple.
     
      var html_data = "";
     
      if (page == "accueil")
      { html_data += "    <div id=\"div_accueil\">       <a href=\"index.html\">       <img src=\"images/menu/etiquette_accueil_u.png\" />      </a></div>               "; }
      else
      { html_data += "    <div id=\"div_accueil\">       <a href=\"index.html\">       <img src=\"images/menu/etiquette_accueil.png\" />      </a></div>               "; }
     
      if (page == "cuisine")
      { html_data += "    <div id=\"div_cuisine\">       <a href=\"cuisine.html\">     <img src=\"images/menu/etiquette_cuisine_u.png\" />      </a></div>               "; }
      else
      { html_data += "    <div id=\"div_cuisine\">       <a href=\"cuisine.html\">     <img src=\"images/menu/etiquette_cuisine.png\" />      </a></div>               "; }
     
      if (page == "salon")
      { html_data += "    <div id=\"div_salon\">         <a href=\"salon.html\">       <img src=\"images/menu/etiquette_salon_u.png\" />        </a></div>               "; }
      else
      { html_data += "    <div id=\"div_salon\">         <a href=\"salon.html\">       <img src=\"images/menu/etiquette_salon.png\" />        </a></div>               "; }
     
      if (page == "chambres")
      { html_data += "    <div id=\"div_chambres\">      <a href=\"chambres.html\">    <img src=\"images/menu/etiquette_chambres_u.png\" />     </a></div>               "; }
      else
      { html_data += "    <div id=\"div_chambres\">      <a href=\"chambres.html\">    <img src=\"images/menu/etiquette_chambres.png\" />     </a></div>               "; }
     
      if (page == "salle_eau")
      { html_data += "    <div id=\"div_salle_eau\">     <a href=\"salles_eau.html\">  <img src=\"images/menu/etiquette_salle_eau_u.png\" />    </a></div>               "; }
      else
      { html_data += "    <div id=\"div_salle_eau\">     <a href=\"salles_eau.html\">  <img src=\"images/menu/etiquette_salle_eau.png\" />    </a></div>               "; }
     
      if (page == "calendrier")
      { html_data += "    <div id=\"div_calendrier\">    <a href=\"calendrier.php\">   <img src=\"images/menu/etiquette_calendrier_u.png\" />   </a></div>               "; }
      else
      { html_data += "    <div id=\"div_calendrier\">    <a href=\"calendrier.php\">   <img src=\"images/menu/etiquette_calendrier.png\" />   </a></div>               "; }
     
      if (page == "tarifs")
      { html_data += "    <div id=\"div_tarifs\">        <a href=\"tarifs.html\">      <img src=\"images/menu/etiquette_tarifs_u.png\" />       </a></div>               "; }
      else
      { html_data += "    <div id=\"div_tarifs\">        <a href=\"tarifs.html\">      <img src=\"images/menu/etiquette_tarifs.png\" />       </a></div>               "; }
     
      if (page == "carte")
      { html_data += "    <div id=\"div_carte\">         <a href=\"carte.html\">       <img src=\"images/menu/etiquette_carte_u.png\" />        </a></div>               "; }
      else
      { html_data += "    <div id=\"div_carte\">         <a href=\"carte.html\">       <img src=\"images/menu/etiquette_carte.png\" />        </a></div>               "; }
     
      if (page == "contacts")
      { html_data += "    <div id=\"div_contacts\">      <a href=\"contacts.html\">    <img src=\"images/menu/etiquette_contacts_u.png\" />     </a></div>               "; }
      else
      { html_data += "    <div id=\"div_contacts\">      <a href=\"contacts.html\">    <img src=\"images/menu/etiquette_contacts.png\" />     </a></div>               "; }
     
      if (page == "partenaires")
      { html_data += "    <div id=\"div_partenaires\">   <a href=\"partenaires.html\"> <img src=\"images/menu/etiquette_partenaires_u.png\" />  </a></div>               "; }
      else
      { html_data += "    <div id=\"div_partenaires\">   <a href=\"partenaires.html\"> <img src=\"images/menu/etiquette_partenaires.png\" />  </a></div>               "; }
     
      document.write(html_data);
      //alert(page);
    }
    Exemple d'appel :
    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
    <HTML>
      <HEAD> 
            <META http-equiv="Content-Type" Content="text/html; charset=ISO-8859-1">
            [...]
            <script src="load_data.js" type="text/javascript"></script>
      </HEAD>
      <BODY>
     
    <TABLE width="100%" border="0"><TR valign="top">
    <TD width="150px">
        <script type="text/javascript">import_menu("cuisine");</script>
    </TD>
    <TD>
    [...]
    Mon problème est relativement simple : j'ai un problème de passage de paramètre entre la page HTML et la page Javascript.

    Comme on peut le voir sur le site, certains appels ne posent aucun soucis : depuis les pages "accueil", "calendrier", "tarifs", "contacts" et "partenaires". Si on utilise ces liens, alors le menu change et souligne la page courante dans le menu.
    Mais si on utilise les autres liens :
    - ca fonctionne sous IE7
    - ca ne fonctionne plus sous Firefox2 (la valeur du paramètre est "undefined")

    Je ne comprends pas ce qu'il se passe... C'est comme si ca dépendait de la valeur du paramètre

    Avez-vous une idée, s'il vous plait ?

  2. #2
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 916
    Par défaut
    Je teste à l'instant et je ne vois pas vraiment de problème !
    Je bosse avec Firefox 2.0 !

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut
    C'est à dire que à chaque fois que vous cliquez un lien du menu, celui-ci est alors souligné ? Pour les 10 liens du menu ?

    Pour ma part seuls certains d'entre eux fonctionnent correctement.
    Peut-être est-ce mon Firefox qui bug un peu... Un plug-in, par exemple...

    Quelqu'un d'autre pourrait confirmer, s'il vous plait ?

    Merci pour votre aide

  4. #4
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 916
    Par défaut
    Yep, vous m'avez bien entendu. Ca fonctionne pour les 10 !

  5. #5
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 916
    Par défaut
    Par contre, la technique du "document.write" n'est plus très tendance !!! Il y a moyen de faire beaucoup mieux de manière très semblable. Cf la FAQ (X)HTML.

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut
    D'accord, merci !
    Je regarderai ca dès que possible, bien que ca me surprenne

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/08/2007, 16h07
  2. passage de paramètre à une fonction passée en paramètre
    Par bambou dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/08/2007, 10h39
  3. Réponses: 12
    Dernier message: 04/04/2007, 09h41
  4. Passage de paramètre à une fonction dans un G_CALLBACK
    Par Dimitri_87 dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 15/09/2006, 11h04
  5. [PL/SQL] : Passage de paramètres à une fonction
    Par dcollart dans le forum Oracle
    Réponses: 5
    Dernier message: 13/07/2006, 10h17

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