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

HTML Discussion :

[HTML] "Nested tags", comment sont interpretées des balises imbriquées ?


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut [HTML] "Nested tags", comment sont interpretées des balises imbriquées ?
    Bonsoir,

    Une question peut etre bizarre pour vous, en tout cas je ne connais pas grand chose au monde du HTML:
    . je suis tombé sur une code source ou je vois des balises <body>...</body> (et son contenu, des div et des inputs) contenues dans une "structure" plus grande, dont une balise <body>... etc...
    De plus, je vois deux choses qui me sembleraient contradictoire:
    . dans la première balise body (celle la plus imbriquée) une fonction a été affectée a l'event onload.
    . en fin de code source, je vois dans un bout de script "window.onload=function()...etc".

    Je me demande donc si ces balises imbriquées représentent une structure "normale" et si leur contenu va etre correctement interpreté, et qu'est ce qui sera théoriquement executé lors du onload de la page ?

    Merci d'avance,
    @+

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    A priori, tous ces différents codes vont être exécutés après le chargement de la page, dans l'ordre dans lequel ils ont été lus.

    Par exemple, rien ne t'empêche d'avoir plusieurs appels à fonctions dans le onload du body, comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="maFonction1(); maFonction2();">
    Ce qui revient au même que :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = function() { maFonction1(); maFonction2(); };

    Ce qui revient au même que :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    window.onload = function() { maFonction1(); };
    window.onload = function() { maFonction2(); };

    Après, le fait qu'il y ait plusieurs balises body imbriquées, n'est pas correct au niveau HTML - même si le navigateur interprétera correctement le code - et provient certainement d'includes en langage serveur et dont chaque fichier a une structure HTML complète.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Pas tout à fait Bisûnûrs, dans la forme :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    window.onload = function() { maFonction1(); };
    window.onload = function() { maFonction2(); };
    le 2nd onload va remplacer le premier et seule le fonction2 sera exécutée !
    Pour les 2 body, il faut vérifier s'il n'y a pas de frames ou d'iframe dans la page auquel cas, les événements seront affectés au chargement de la frame en question.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonjour,

    Merci pour vos réponses.
    Je dois trouver la raison d'un comportement indésirable qui arrive de manière aléatoire sur un page html générée par un "système" dont pour une partie je ne maitrise absolument (rien hormis qq settings), et pour une autre j'aurais la joie de pouvoir tout casser si nécessaire...
    Néanmoins, j'estime que mes connaissances en html (voire meme js finalement) sont assez légères, je continue donc mes p'tites questions.
    Si je pousse un peu plus loin, et j'ai testé un peu malgré moi, je peut me retrouver avec non seulement la balise <body> mais aussi toute la "hierarchie" classique d'une page web (donc <html><head><body>... etc) imbriquée dans une structure plus grande et - particulièrement - contenue dans une balise <td></td>. (sans <frame> ou <iframe> ou autres)
    Mon instinct me dis : "c'est pas bien".
    Maintenant, si c'est juste une question de respect de normes, et que cela ne peut causer de disfonctionnement, je ne vais pas me torturer.

  5. #5
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bien, j'ai fait en sorte que le code généré ne comporte plus ces balises imbriquées, idem pour le onload.
    Maintenant, cela ne solutionne pas mon soucis, tant pis.
    Je vais chercher ailleurs, autrechose ....

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

Discussions similaires

  1. [WinForms]Comment sont gérés des clics rapides sur un bouton
    Par NicolasJolet dans le forum Général Dotnet
    Réponses: 9
    Dernier message: 25/10/2006, 12h34

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