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 :

javascript de la théorie à la pratique


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 119
    Par défaut javascript de la théorie à la pratique
    Bonsoir à vous,
    je suis étudiant et ai un TP à faire, je pensais avoir saisi la théorie du javascript, et là je me prends une grande claque, j'espère que vous saurez éclairer ma lanterne.

    Il s'agit de modifier un fichier .xhtml à l'aide d'un fichier .js qui lui est joint.
    Le fichier .xhtml est une liste de recettes. Le titre principal est déterminé grâce à <h1> et chaque recette par <h3>.
    La question est alors de modifier le titre principal, en lui ajoutant le nombre de recettes contenues dans le fichier sous la forme : "titre (3)" (par exemple...).

    J'ai donc, dans mon fichier .js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var titre = document.getElementsByTagName('h1')[0];
    titre.textContent += ' (' + document.getElementsByTagName('h3').length + ')';
    Et là, au chargement de ma page... Rien. Et quand je tente "alert(titre)", j'ai undefined...

    Là j'avoue ne plus rien comprendre.
    Merci à vous en tout cas!

  2. #2
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Par défaut
    Bonjour,

    Dans un premier temps, si tu peux modifier ton post afin d'utiliser les balises CODE pour une meilleure lisibilité.

    Est-ce que que tu as que ça dans ton code JavaScript ? Peux-tu nous en donner un peu plus ?
    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 119
    Par défaut
    Ah bah non, je n'ai que ça, pour faire la tâche qui est demandée...
    Limite j'aurais pu juste mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByTagName('h1')[0].textContent += ' (' + document.getElementsByTagName('h3').length + ')';
    Enfin selon ce que j'avais cru comprendre de javascript, qui apparemment est faux

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 119
    Par défaut
    Rebonsoir, j'ai trouvé la solution... Ou en tout cas une solution.
    La balise <script> était écrite entre les balises <head>, je l'ai déplacée juste avant la fermeture de ma balise <body>.
    Existe t-il un moyen, en laissant la balise <script> entre les balises <head>, de forcer le contenu du fichier .js à n'être interprété qu'en fin de chargement de la page?

  5. #5
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    chez moi ton code fonctionne nickel ! (enfin, j'ai remplacé "textContent" par "innerHTML" pour être compatible avec IE en plus des autres navigateurs)

    à mon avis ton problème est que tu places ton codes javascript avant ton code html (par exemple dans le header) et que donc lors de son exécution les balises <h1> et <h3> n'existent pas encore et sont introuvables par ton code !

    donc soit tu places ton code javascript à la fin de ton body (pas recommandé ) soit tu rajoutes une instruction dans ton code javascript signalant qu'il ne soit s'exécuté qu'une fois la page complètement chargée ! comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    window.onload = function(){
    	var titre = document.getElementsByTagName('h1')[0];
    	titre.innerHTML += ' (' + document.getElementsByTagName('h3').length + ')';
    }
    edit: arg, t'as posté en même temps que moi, saloperie ^^

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 119
    Par défaut
    Ah bah on a posté en même temps, mais c'est là que t'es balèze!
    Tu réponds à une question pas encore posée! Merci!

  7. #7
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Sinon la solution la plus commune est d'utiliser l'attribut onload de la balise body (qui a à peu près le même comportement que le window.onload dont parle Willpower) :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <body onload="modifieTitre()">
    <!-- contenu de la page -->
    </body>

Discussions similaires

  1. Etude, théorie et pratique du controle winsock
    Par Ramdoulou dans le forum VB 6 et antérieur
    Réponses: 57
    Dernier message: 13/11/2008, 18h56
  2. [MySQL] théorie et pratique script football
    Par jackbauer33 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/06/2008, 15h39
  3. De la théorie à la pratique
    Par CoGnos8 dans le forum Approche théorique du décisionnel
    Réponses: 3
    Dernier message: 05/06/2008, 19h55
  4. Index : théorie et pratique
    Par schlitters dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 11/01/2006, 19h02
  5. [Architecture] De la théorie à la pratique ...
    Par JMLJ dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 24/06/2005, 10h46

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