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 où suis je ? :)


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut DOM où suis je ? :)
    Bonjour

    dans une page , un script javascript est inséré dans un élément du body
    je ne sais pas où
    le but est de savoir avec mon script js où je me trouve et ensuite mettre du code html là où je le trouve
    est ce possible ?

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div></div>
    <div></div>
    <div><script language="JavaScript" src="..."></script></div>
    <div></div>

    Merci de votre aide

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    Bonjour,
    pour info, c'est dans la :
    Comment ajouter du JavaScript à une page HTML ?
    Où placer les scripts dans la page HTML ?
    Quels sont les attributs de la balise script ?

    Ensuite il serait intéressant de savoir ce qu'il y à dans le fichier et ce que fait le script.

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Bonnes Pratiques
    Ne jamais éparpiller le JS dans le DOM.
    Mettre des id sur les éléments à manipuler
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div></div>
    <div></div>
    <div id="divAManipuler1"></div>
    <div></div>
    Mettre tous les jS dans le head
    n'agir sur les éléments du dom que lorsque le document est complètement chargé (onLoad)

    A+JYT

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut
    merci pour les bonnes pratiques et les bases de js
    mais ce n'était pas ma demande

    ma demande est un cas particulier auquel je ne peux pas changer grand chose

    le script js mettra du html dans la div où il se trouve
    actuellement il utilise document.write et je voudrais changer ça car document.write me pose probleme

    existe t il une autre solution

    Merci de votre aide

  5. #5
    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
    La méthode est crade, mais le POC est intéressant.

    je voudrais changer ça car document.write me pose probleme
    Je te comprends !

    La solution, c'est de considérer que le DOM se construit en même temps que la page HTML. Du coup, quand ton script est interprété, les éléments déjà présents dans le HTML existent déjà dans le DOM.

    Du coup, une première approche serait d'insérer le contenu du script à la fin du body :

    http://codepen.io/bovino/pen/EeAyF

    Seul problème, ça ne marche que pour les enfants directs de la balise <body> :

    http://codepen.io/bovino/pen/ImfFq

    Donc, il faut effectivement savoir où on se trouve exactement.
    Pour ça, on sait qu'on se trouve dans une balise <script>. Or comme le script est interprété, on sait aussi que cette balise est la dernière de ce type dans le document, on peut donc récupérer le dernier éléments de la collection des balises <script>, récupérer sa balise parente et y ajouter le nouvel élément :

    http://codepen.io/bovino/pen/vwdye

    Le tour est joué !
    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

  6. #6
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Citation Envoyé par nicerico Voir le message
    merci pour les bonnes pratiques et les bases de js
    mais ce n'était pas ma demande
    Ha je croyais en lisant que ta demmande était comment écrire dans un div...
    Citation Envoyé par nicerico Voir le message
    ma demande est un cas particulier auquel je ne peux pas changer grand chose

    le script js mettra du html dans la div où il se trouve
    Ha tient j'ai bien lu que ta demmande était comment écrire dans un div...
    Citation Envoyé par nicerico Voir le message
    actuellement il utilise document.write et je voudrais changer ça car document.write me pose probleme

    existe t il une autre solution

    Merci de votre aide
    Ben appliquer celle que je t'ai donnée
    A+JYT

  7. #7
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Citation Envoyé par sekaijin Voir le message
    Bonnes Pratiques
    Mettre des id sur les éléments à manipuler[CODE=html]<div></div>
    Il n'y a pas que les ID ! Parce que c'est le moyen le plus simple, beaucoup de débutants ne connaissent rien d'autres. Et à force d'en mettre partout, il finit par y avoir des duplicats qui donnent des bugs très difficiles à déceler et résoudre. Mieux vaut apprendre à sélectionner les éléments en JS avec la même polyvalence qu'en CSS, surtout que querySelector est supporté quasiment partout maintenant.

  8. #8
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Tout a fait d'accord avec toi.

    Mais bon pour remplacer un script qui fait des doccument.write par une meilleure solution sans toucher au code
    perso je vois pas.

    A+JYT

  9. #9
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Il peut être intéressant de connaître l'existence de document.currentScript, même s'il ne marche pas sous IE.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. [DOM] Savoir quel site sur lequel je suis
    Par bichoking dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 10/09/2008, 10h24
  2. XML DOM et gros fichiers
    Par Manu_Just dans le forum APIs
    Réponses: 4
    Dernier message: 28/03/2003, 09h50
  3. [DOM/SAX]Choix...
    Par miss8 dans le forum APIs
    Réponses: 4
    Dernier message: 17/03/2003, 18h37
  4. pb formatage document XML généré par un dom tree
    Par lionel69 dans le forum APIs
    Réponses: 11
    Dernier message: 17/10/2002, 09h53
  5. Réponses: 3
    Dernier message: 04/09/2002, 09h42

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