Annonce

Réduire
Aucune annonce.

Remarque troublant sur l'utilisation d'un fichier externe en javascript

Réduire
X
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Remarque troublant sur l'utilisation d'un fichier externe en javascript

    Salut je suis Rodrigue Daniel

    J'ai fait un constat en javascript dernièrement : avec l'utilisation d'un fichier <.js> externe lorsque j'agis sur les événements, l'élément html sur lequel je veux déclencher une action, lorsque je le met avant la définition de la ligne javascript pour ce fichier externe (<script src="fichier.js"></script>), mon code JS fonctionne sans problème mais lorsque l'élément est situé après alors rien ne fonctionne. J'utilise HTML5 et Javascript.Mais j'ai utilisé cette méthode sans
    problème avec certaines syntaxes en JS.

    Voici deux mini-codes (html5 et javascript) pour éclaircir mon problème :
    Code HTML:
    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
    <h1 id="titre"> C'est genial </h1>
    <script src="fichier.js"></script>
    <div >
    <span id="capt">Cliquez-moi</span>
    </div>
    </body>
    </html>
    Code:
    var element1 = document.getElementById('titre');
    element1.addEventListener('click', function(){
    alert("Bonjour");
    }, false);
    
    var element2 = document.getElementById('capt');
    element2.addEventListener('click', function(){
    alert("Bonjour");
    }, false);
    Le code html5 est enregitré dans un fichier <test.html> et celui de javascript dans un fichier <fichier.js>.

    Avec l'objet element1 : ça fonctionne, mais avec l'objet element2 rien ne fonctionne.
    SVP éclaircissez moi.
    MERCI
    Dernière modification par rodrigue daniel, 12 avril 2016, 11h31.
    Passionné par la Sécurité Informatique.
    Le véritable ennemi de la connaissance n'est pas l'ignorance mais l'illusion de la connaissance.
    La quête de la connaissance passe d'abord par l'humilité et ensuite la détermination.

  • #2
    Hello,

    Pour ton nom, on le voit, il est dans ton profil .

    Je me demande si ton problème n'est pas du à l'ordre de chargement de la page.
    Je m'explique :

    Quand tu charges ton script, le browser essaye de l'exécuter directement.
    L'élément capt n'est cependant pas encore chargé dans le dom du navigateur.
    Tu ne peux donc pas encore faire un getElementById. Il doit à mon avis te renvoyer un Undifined comme il est là.
    Tu devrais tester.

    Je pense qu'il y a deux solutions :
    1. Mettre ton chargement de script tout à la fin de ta page HTML
    2. Je pense qu'il existe une fonction en JS ou en JQuery qui permet de savoir quand la page vient de finir de charger. Je ne sais par contre plus laquelle

    Commentaire


    • #3
      Salut

      Donc en quelque sorte, le chargement d'une page est séquentiel commençant par la balise du doctype
      jusqu'à la fin (balise fermante html) ou alors c'est autre chose.
      Je souhaiterais savoir. Merci
      Passionné par la Sécurité Informatique.
      Le véritable ennemi de la connaissance n'est pas l'ignorance mais l'illusion de la connaissance.
      La quête de la connaissance passe d'abord par l'humilité et ensuite la détermination.

      Commentaire


      • #4
        C'est bien ça !

        Commentaire


        • #5
          Salut

          Anonyme77, grand merci pour cet éclaircissement.
          Passionné par la Sécurité Informatique.
          Le véritable ennemi de la connaissance n'est pas l'ignorance mais l'illusion de la connaissance.
          La quête de la connaissance passe d'abord par l'humilité et ensuite la détermination.

          Commentaire


          • #6
            Pas de soucis.

            Dans tous les cas, je te conseilles d'également étudier le JQuery si tu t'intéresses aux technologies Web.
            Il est une suite logique, très puissante et modulaire du javascript.

            Voici un lien si tu es intéressé : https://openclassrooms.com/courses/s...pt-avec-jquery

            Commentaire


            • #7
              Bonjour,

              J'apporte un réponse pour compléter,

              le comportement que tu as est tout à fait normal, ton script doit être placé à la fin de ton html. tu essayes d'aller chercher l'élément 'capt' avant qu'il ne soit connu, donc ton élément ne sera jamais trouvé.

              Commentaire

              Chargement...
              X