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] [Debutant] Affecter du contenu html à document.getElementById("blabla")


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Points : 46
    Points
    46
    Par défaut [DOM] [Debutant] Affecter du contenu html à document.getElementById("blabla")
    Bonjour à tous,

    Après fait quelques recherches et lu la FAQ je ne trouve pas de réponse à mon problème (c'est peut être trop trivial en fait mais je débute).

    Dans le bout de code:
    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
    <html>
     
    <head>
    <link rel="stylesheet" type="text/css" href="styles.css">
    <style>
    	#menu{position:absolute; top:0px; left:0px; width:300px; height:700px; border:solid black 1px;}
    	#contenu{position:absolute; top:0px; left:302px; width:600px; height:700px; border:solid black 2px;}
    	.cel{border:solid black 1px; text-align:center; cursor:hand;}
    </style>
    <script langage="JavaScript">
    	function RefreshContenu(k)
    	{  
    	if (k==0)
    		document.getElementById("contenu").innerHTML = "ici ma page htlm";
    	else if (k==1)
    		document.getElementById("contenu").innerHTML = "Localisation";		
    	}
    </script>
    </head>	
     
    <body>
     
    <div id="menu">
    <table width="100%">
    	<TR><td onclick="RefreshContenu(0);" class="cel">Accueil</td></TR>
    	<TR><td onclick="RefreshContenu(1);" class="cel">Localisation</td></TR>
    </table>
    </div>
     
    <div id="contenu">
    contenu initial
    </div>
     
    </body>
    </html>
    j'aimerais affecter une page html à la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById
    J'ai essayé pas mal de variantes et je suis un peu bloqué..

    Merci d'avance pour votre aide.

    Julien

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par skual Voir le message
    j'aimerais affecter une page html à la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById
    Tel que tu l'as écrit ça devrait fonctionner ...

    Quel est le résultat ?

    Sinon, pour une "vraie" page (un .html), regarde du côté des iframe ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Points : 46
    Points
    46
    Par défaut
    Je l'écris comme ça en fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("contenu") = accueil.html;
    Merci pour ta précision, je vais voir du côté des Iframe.

    Bonne soirée.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par skual Voir le message
    Je l'écris comme ça en fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("contenu") = accueil.html;
    Je parlais du code posté ci-dessus, qui, lui, doit fonctionner

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Points : 46
    Points
    46
    Par défaut
    Bonjour E.bzz, bonjour à tous,

    Oui tu as raison le code que j'avais mis au départ fonctionne, c'est simplement pour y attribuer directement du contenu html que cela ne fonctionne pas.

    J'ai donc regardé du côté des iFrames.

    J'ai vu que l'on pouvait en insérer une de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe name="cont" SRC="accueil.html" scrolling="no" height="220" width="180" FRAMEBORDER="no"></iframe>
    Effectivement, cela fonctionne.

    Maintenant dans mon bout de code javascript, j'aimerais insérer cette iFrame (ce qui je pense n'est pas possible puisque les langages ne sont pas les mêmes) à la place de "ma_page_html/mon_iFrame":

    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
    <html>
     
    <head>
    <link rel="stylesheet" type="text/css" href="styles.css">
    <style>
    	#menu{position:absolute; top:0px; left:0px; width:300px; height:700px; border:solid black 1px;}
    	#contenu{position:absolute; top:0px; left:302px; width:600px; height:700px; border:solid black 2px;}
    	.cel{border:solid black 1px; text-align:center; cursor:hand;}
    </style>
    <script langage="JavaScript">
    	function RefreshContenu(k)
    	{  
    	if (k==0)
    		document.getElementById("contenu").innerHTML = "ma_page_htlm/mon_iFrame";
    	else if (k==1)
    		document.getElementById("contenu").innerHTML = "Localisation";		
    	}
    </script>
    </head>	
     
    <body>
     
    <div id="menu">
    <table width="100%">
    	<TR><td onclick="RefreshContenu(0);" class="cel">Accueil</td></TR>
    	<TR><td onclick="RefreshContenu(1);" class="cel">Localisation</td></TR>
    </table>
    </div>
     
    <div id="contenu">
    contenu initial
    </div>
     
    </body>
    </html>

    Je fais ça car j'ai lu que les Frame nuisaient au référencement. Mon besoin initial est ultra-simple: une page avec un menu et un contenu changeant en fonction de ce menu.

    Merci d'avance pour votre aide.

    Julien

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    si j'ai bien compris : tu souhaites intégrer une page HTML dans la page de ton site ?

    Utilise innerHTML uniquement pour insérer du texte non formaté (c'est à dire sans balise HTML) sinon il faut passer par le DOM ou AJAX.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par skual Voir le message
    Maintenant dans mon bout de code javascript, j'aimerais insérer cette iFrame (ce qui je pense n'est pas possible puisque les langages ne sont pas les mêmes) à la place de "ma_page_html/mon_iFrame"
    Tu veux dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['cont'].src='ma_page_htlm/mon_iFrame';
    ?

    Citation Envoyé par skual Voir le message
    Je fais ça car j'ai lu que les Frame nuisaient au référencement.
    Heu ... possible, mais ça se contourne facilement en ajoutant des <A href> (masqués, ou à la place de tes TD cliquables) ciblant les mêmes liens ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Points : 46
    Points
    46
    Par défaut
    Merci pour vos réponses.

    Auteur, en fait je me suis mis au dev. web hier et j'aurais bien aimé commencer par les bases (HTML, javascript, CSS) sans toucher aux autres langages pour le moment.

    E.bzz,
    Oui j'aimerais faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['cont'].src='ma_page_htlm/mon_iFrame';
    mais en récupérant l'ID de mon élément <div> pour aller y mettre le contenu de ma page accueil.html.

    Merci.

    Julien

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par skual Voir le message
    mais en récupérant l'ID de mon élément <div> pour aller y mettre le contenu de ma page accueil.html.
    Et bien tu n'as qu'à placer ton iframe dans ce div ...
    (pas possible de faire autrement, sauf via Ajax. Cf. Auteur)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Citation Envoyé par skual Voir le message
    Merci pour vos réponses.

    Auteur, en fait je me suis mis au dev. web hier et j'aurais bien aimé commencer par les bases (HTML, javascript, CSS) sans toucher aux autres langages pour le moment.
    DOM et AJAX ne sont pas des langages
    DOM est une norme :
    http://fr.wikipedia.org/wiki/Document_Object_Model
    Quant à AJAX c'est une "extension" de javascript :
    http://fr.wikipedia.org/wiki/Asynchr...Script_and_XML

    Ceci dit pour attaquer AJAX, il faut bien connaître javascript et avoir des outils appropriés.
    Donc pour le moment si tu souhaites manipuler ta page sans passer par le serveur, passe par des fonctions DOM (createElement, appendChild, etc.). Sur le forum tu trouveras à la pelle des exemples de scripts utilisant le DOM


    [edit]
    Si j'ai bien compris tes messages précédents, tu souhaites manipuler une page contenue dans une iframe à partir d'un script contenu dans la page principale ? Si c'est le cas cf. cette discussion :
    http://www.developpez.net/forums/d27...enetre-enfant/ (1er message, exemple 3 : "3ème possibilité : La page enfant est contenue dans une iframe"
    [/edit]

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Points : 46
    Points
    46
    Par défaut
    D'accord, merci à vous deux pour ces infos.

    Je vais essayer ces solutions et vous tiendrai au courant.

    Bonne journée.

    Julien

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Points : 46
    Points
    46
    Par défaut
    Bonjour à tous,

    Auteur, je prends note pour DOM et AJAX, effectivement il sera peut être interressant de s'y mettre.

    E.bzz, finalement, j'ai essayé avec les <A href> dont tu parlais. Ca fonctionne et c'est plus simple:

    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
    <html>
     
    <head>
    <link rel="stylesheet" type="text/css" href="styles.css">
     
    <style>
    	#menu{position:absolute; top:0px; left:0px; width:300px; height:700px; border:solid black 1px;}
    	#contenu{position:absolute; top:0px; left:302px; width:600px; height:700px; border:solid black 2px;}
    	.cel{border:solid black 1px; text-align:center; cursor:hand;}
    </style>
     
    </head>	
    <body>
     
    <div id="menu">
    <a href="accueil.html" target="cont">Accueil</a>
    <a href="localisation.html" target="cont">Localisation</a> 
    </div>
     
    <div id="contenu">
    <iframe id="11" name="cont" src="" scrolling="auto" height="700" width="400" FRAMEBORDER="no"></iframe>
    </div>
     
    </body>
    </html>

    Merci pour votre aide

    Julien

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

Discussions similaires

  1. [DOM] [debutant] changer le contenu d un iframe en DOM
    Par junior68 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 10/06/2009, 17h29
  2. [DOM] Où placer du contenu HTML sans qu'il soit initialement traité
    Par gael dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/05/2008, 10h26
  3. [debutant] document.getElementById("id") has no properties ?
    Par ThitoO dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/04/2008, 18h51
  4. document.getElementById(id) si id est absent du code HTML
    Par j.p.mignot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/01/2008, 21h34
  5. [DOM] [lightbox] document.getElementById('box')
    Par yodark dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/01/2008, 10h40

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