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 :

script pour ouvrir lien/LINK dans une DIV


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut script pour ouvrir lien/LINK dans une DIV
    Bonjour,

    je cherche à ouvrir un lien html dans une DIV "content".
    J ai trouvé ce script censé marcher mais il n ouvre pas la page.

    Code html : 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    	<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
    	<title>CompanyName - PageName</title>
     
     
    <script type="text/javascript">
     
    function jah(url,target) { 
    // native XMLHttpRequest object 
    document.getElementById(target).innerHTML = 'sending...'; 
    if (window.XMLHttpRequest) { 
    req = new XMLHttpRequest(); 
    req.onreadystatechange = function() {jahDone(target);}; 
    req.open("GET", url, true); 
    req.send(null); 
    // IE/Windows ActiveX version 
    } else if (window.ActiveXObject) { 
    req = new ActiveXObject("Microsoft.XMLHTTP"); 
    if (req) { 
    req.onreadystatechange = function() {jahDone(target);}; 
    req.open("GET", url, true); 
    req.send(); 
    } 
    } 
    } 
     
    function jahDone(target) { 
    // only if req is "loaded" 
    if (req.readyState == 4) { 
    // only if "OK" 
    if (req.status == 200) { 
    results = req.responseText; 
    document.getElementById(target).innerHTML = results; 
    } else { 
    document.getElementById(target).innerHTML="jah error:\n" + 
    req.statusText; 
    } 
    } 
    }
     
    </script>
     
     
    </head>
     
     
    <body>
     
    <div id="container">
    	<div id="header">
    		<h1> Le header</h1>
    	</div>
    	<div id="language_bar">
    	</div>
     
    	<div id="wrap">
     
    		<div id="menu">
    			<ul id="nav">
    			</ul>
    		</div>
    		<div id="content">
    			<ul id="liste_surv">
    				<li id="art1">
    					<div class="texte_art">
    						<a href="jah('des.html','content')">
    						<span class="titre_art">
    						Design
    						</span>
    						</a>
    					</div>
    				</li>
     
    			</ul>
    		</div>
    	</div>
    </div>
     
     
    </body>
    </html>

    Est-ce que le lien est correct ('content' etant le nom de la DIV )?
    <a href="jah('des.html','content')">

    Merci pour toute aide!

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="jah('des.html','content');return false;">
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    OK, merci ! onclick avec un k, ca lance bien le script! Mais au lieu de charger la page des.html dans le DIV 'content', il écrit "sending..." et met un lien "click".

  4. #4
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    je cherche à ouvrir un lien html dans une DIV "content".
    Juste pour me rassurer, tu ne comptes pas insérer une page HTML complète (avec balises <html>, <head>, <body> etc.) dans une div ?
    Parce que ça, c'est impossible !
    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

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Je n'osais le dire, Bovino

    Malheureusement, c'est une logique qui n'est toujours pas entrée dans les moeurs.

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Juste pour me rassurer, tu ne comptes pas insérer une page HTML complète (avec balises <html>, <head>, <body> etc.) dans une div ?
    Merci pour ton aide!
    Si c' est bien ce que je comptais faire. Ca marche comment alors le web ?
    Je croyais qu ' on faisait sa mise en page avec menu de navigation et qu à chaque click dans de navigation, on ouvre une autre page contenant le texte, les photos correspondants - ca parait logique pour un non-connaisseur;-)-

    Je précise: je crée mon site en local, tout simple (menu, header,footer) html et css,je connais rien d' autre encore (et si possible je veux rien d autre).
    Je croyais tout simplement charger le nveau contenu de ma page dans la div content par:
    <a href="nveau_contenu.html" target="content">
    Evidemment on m a rigolé au nez, Ok. Puis certains parlent de Javascript pour faire ca, d autres disent Php ... Bien ! Est ce qu il y a encore plus compliqué pour afficher 3 bout de textes et deux images dans une page formattée par div ??

    Merci!

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Juste pour me rassurer, tu ne comptes pas insérer une page HTML complète (avec balises <html>, <head>, <body> etc.) dans une div ?
    Parce que ça, c'est impossible !
    Je cherche toujours ... :
    lorsque je regarde un site comme celui-ci:
    http://neadesignnc.com/neadesignnc/index.htm

    j affiche le source, je cherche "details",correspondant au bouton "Details" du menu. Le href en question il appelle bien un fichier detail.htm, je suppose qu il comprend ttes les balises que tu cites.
    Ou est ce que je me trompe ??

    Merci pour tout commentaire!

  8. #8
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    Bah là le site que tu montres n'est pas du tout "ajax", le menu est juste le même pour toutes les pages...

    Sinon,pour l'insertion d'une page html dans un div, le code HTML est inséré dans un div, et je pense que ce serait un peu bizarre d'écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div id="content">
    <html>
    <head>
    ... du code html ...
    </body>
    </html>
    </div>
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par supersnail Voir le message
    Bonjour,

    Bah là le site que tu montres n'est pas du tout "ajax", le menu est juste le même pour toutes les pages...
    Ajax??
    Je recadre:
    Je veux le meme principe c-a-d le menu reste bien sûr pour ttes les pages.

    je pensais faire ("content" etant le nom de ma div ou je veux afficher la nvelle pge).
    <a href="la_nvelle_pge.html" target="content"> ...

    Mais ca, ca ne marche pas, et dans ce forum on m a orienté soit sur le Javascript, soit php. Les 2 me paraissant bien compliqué, ´j ai cru qu il y avait une solution plus simple (c est pour ca aussi que j ai donné le lien, car il me simple qu ' on y utilise ni Javascript ni php).

    Merci.

  10. #10
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    Bah PHP est sûrement utilisé, sauf que la personne qui voit la page dans son navigateur ne voit pas de code PHP (heureusement d'ailleurs).

    Cependant, tu peux faire la même chose en HTML, cependant tu vas devoir copier-coller la même structure HTML de TOUTES tes pages HTML,pour simplement modifier le contenu... (c'est pour cela qu'il vaut mieux utiliser PHP,même si cela reste faisable en HTML "classique").
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par supersnail Voir le message
    Cependant, tu peux faire la même chose en HTML, cependant tu vas devoir copier-coller la même structure HTML de TOUTES tes pages HTML,pour simplement modifier le contenu...
    Merci!
    Excuses d être un peu lourd, mais comment je fais en html, sachant que ce qu 'on faisait autrefois avec les cadres/frames c-a-d <a href="nvelle_page.html" target="la_div_content">... ne marche pas.
    Tu dis copier/coller mes pages ? Ou ca? Dans un unique et seul fichier html? Et puis ou dans le fichier? Ca c est mon menu, j ecris quoi dans le href?
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ul id="nav">
    <li id="nav_home"><a href="#">Home</a></li>
    <li id="nav-eng"><a href="#">Engineering Design</a></li>
    </ul>
    Merci encore.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    En gros ce que l'on t'a expliqué c'est que la page est intégralement rechargé.
    Donc avec html / javascript tu ne peux pas faire ce que fait un langage serveur c'est a dire composer (concatener le code html ) la page. php le fait avec include().

    soit tu répliques le code html des menu sur les pages et tu modifies juste la partie changeante en dur.

    soit tu restes avec des frame / ou iframe ou balises object

    soit tu passes en langage serveur

    soit si le contenu n'est pas trop gros tu mets tout sur une seule page et tu joues avec js sur la visibilité des parties élements (principe des onglets)

    soit tu bidouilles avec ajax pour venir modifier une partie de la page avec du code html mais sans les header
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    En gros ce que l'on t'a expliqué c'est que la page est intégralement rechargé.
    Donc avec html / javascript tu ne peux pas faire ce que fait un langage serveur c'est a dire composer (concatener le code html ) la page. php le fait avec include().

    soit tu répliques le code html des menu sur les pages et tu modifies juste la partie changeante en dur.

    soit tu restes avec des frame / ou iframe ou balises object

    soit tu passes en langage serveur
    Merci pour cette réponse précise!

    Recharger la page intégralement?! Hors de question parce que visuellement, pour le "surfeur", c est "crade" comme solution.

    Bon, j ai compris que je ne passerais pas au travers de php, ca m apportera plus de bagage que de commencer à bidouiller en Javascript, meme si pour ma page web, je vais me servir de moins de 1% de ce que propose php (pas de bdd, quasiment pas de requetes utilisateur ...)

  14. #14
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    Bah même en PHP, tu rechargeras aussi complètement ta page .


    Donc dans ce cas, vaut mieux passer par javascript (et, soit bidouiller pour enlever les balises <html> , <head> et <body> superflues, ou soit créer des morceaux da pages dépourvues de ces balises ).

    Par contre, pour ta question initiale, ton lien n'est pas correct: il faudrait écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="jaavscript:jah('des.html','content')">
    , ou encore mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="jah('des.html','content')">
    .

    Cependant, en faisant ceci, tu empêches l'utilisateur d'ouvrir ta page dans un nouvel onglet (et faut bidouiller pour que cela soit possible, notamment en jouant sur l'ancre).
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  15. #15
    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 SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="jah('des.html','content');return false;">


    A+
    Pour tout savoir sur l'utilisation du forum

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

  16. #16
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    Merci pour l aide !!

    Citation Envoyé par supersnail Voir le message

    Bah même en PHP, tu rechargeras aussi complètement ta page ...
    Je suis passé par PHP, et je constate en effet que la page est rechargée intégralement - comme dans le cas où je n utilise que du HTML en chargeant à chaque fois tte la page (menu header content) et dont j avais dit que c etait crade comme solution parce qu en l occurrence j aivais testé et constaté que toute la page se décale horizontalement d un demi centimètre dans le browser (i.E 8.0 vers. actuelle) -
    Mais voilà toujours en local, je constate le même effet en PHP. Je me pose donc la question est-ce que c est dû au browser (i.E 8.0) oú bien au fait que je sois en local ? ... Parce que ca serait moche que cet effet persiste une fois le tout envoyé chez l hebergeur.

    Nota: j ai utilisé une solution PHP proposée en réponse dans le forum XHTML (thread "substitution des frames"), utilisant include ...

  17. #17
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    Tu peux nous montrer le code HTML de ta page? (je n'ai jamais rencontré ce genre de bugs lors d'un rechargement de page )
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  18. #18
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par supersnail Voir le message
    Bonjour,

    Tu peux nous montrer le code HTML de ta page? (je n'ai jamais rencontré ce genre de bugs lors d'un rechargement de page )
    Merci !! J ai trouvé l erreur: ma page se recentrer automatiquement dans le browser avec la DOCTYPE :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    Il m a fallut donc faire le centrage par le CSS (margin-left et right: auto)

    Code css : 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
    html,body {
    	height:100%;
    /* marges permettent centrage sans effet secondaire -decalage dans browser */
    	margin-left: auto;
    	margin-right: auto;
    	padding:0;
    	border:0;
    }
     
     
    #container {
    	width: 960px;
    	height: 100%;
    	margin-left: auto;
    	margin-right: auto;
    	padding: 0px;
    	border: 0;
    }

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

Discussions similaires

  1. [BATCH]script pour encoder des fichiers dans une arborescence
    Par ashgan44 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 11/05/2009, 15h04
  2. Lien SPAN dans une DIV
    Par Rosell dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 02/04/2008, 13h01
  3. code html pour ouvrir un lien URL dans une autre fenêtre de l'explorateur internet ?
    Par Dukey dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/02/2008, 18h50
  4. ouvrir un lien enfant dans un div
    Par elekis dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 09/03/2006, 10h59
  5. [HTML]ouvrir une page html dans une div
    Par Phenomenium dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/01/2006, 17h23

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