Bonjour, je voudrais savoir s'il est possible de faire un lien vers une page qui est une frame, et que si on suit ce lien, on a la page dans son contexte, et non juste la frame...
Bonjour, je voudrais savoir s'il est possible de faire un lien vers une page qui est une frame, et que si on suit ce lien, on a la page dans son contexte, et non juste la frame...
J'ai peur de mal comprendre.
Si tu nommes ta frame (NAME="toto") et que tu l'appelles dans ton lien
ca doit coller.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <A HREF="tapage.html" TARGET="toto">
C'est moi qui me suis mal exprimé : en fait, ce que je voudrais, c'est exprimer une URL qui pointe dessus afin de pouvoir la donner en dehors du site web.
Pas en HTML alors mais en php oui.
Tu encodes ton url sous forme de variable dans ton lien, tu l'interprètes dans ta frame.
Désolé, mais je ne te suis pas du tout. Par exemple ça :, ça veut dire quoi, et en fait, de quelle URL et de quel lien parles-tu ?Tu encodes ton url sous forme de variable dans ton lien
Si tu as quelques notions de php :
1 - J'envoie l'url de mon choix dans la frame :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php $monurl=urlencode("http://www.gaetanestleplusbeau.org/toto"); ?> <A HREF="tapage.html?monurl=<?php echo $monurl; ?>" TARGET="maframe">lien</A>
2 - tu affiches l'url dans ta frame
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php if(isset($_GET) && isset($_GET["monurl"])) { $monurl= $_GET['monurl']; } else { $monurl="mapagepardéfaut.html"; } $monurl=urldecode($monurl); ?> <FRAME SRC="<?php echo $monurl; ?>" NAME="maframe">
Ca devrait aller vu que mon site est truffé de PHP/MySQL.Si tu as quelques notions de php :
Là, ça ne va pas ; ça aurait été avecgaetanestleplusbeau.orget retour au sérieux :laurentestleplusbeau.org
ce truc-là :je crois que je le mets dans ma page "menu" (celle que tu as rendu compatible avec FF)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php $monurl=urlencode("http://www.laurentestleplusbeau.org/toto"); ?> <A HREF="tapage.html?monurl=<?php echo $monurl; ?>" TARGET="maframe">lien</A>
Et de plus,, faut-il que ça pointe sur le fichier sur lequel on veut faire le lien ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part http://www.laurentestleplusbeau.org/toto
Par contre, une telle ligne:n'existe pas. Cette ligne n'existe que pour la page par défaut de la frame, que l'on remplace éventuellement par les liens du menu (qui ont justement pour target la frame). Or, c'est justement sur une de ces pages que je voudrais pointer, donc comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <FRAME SRC="<?php echo $monurl; ?>" NAME="maframe">
La solution ne serait-elle pas de se contenter de mettre dans la page de la frame ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php if(isset($_GET) && isset($_GET["monurl"])) { $monurl= $_GET['monurl']; } else { $monurl="mapagepardéfaut.html"; } $monurl=urldecode($monurl); ?>
Aloha
Il s'agit du lien, de l'url précise vers la page à afficher.faut-il que ça pointe sur le fichier sur lequel on veut faire le lien ?
Mais la structure de ton site / de cette page repose bien à la base sur une frame ?n'existe pas. Cette ligne n'existe que pour la page par défaut de la frame,
Sinon donne moi ton code.
Oui, il y a bien des frames, mais voici la page principale (celle par laquelle on accède au site) :
Les noms ne sont pas très parlants..."test_conf.php", c'est la page du menu et "_conf", ça veut dire "confidentiel" (j'ai fait une version "montrable")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <html><head>...</head> <frameset marginwidth="0" marginheight="0" frameborder="0" border="0" framespacing="0" rows="250,200,25"> <frame src="../bandeau/test_conf.php" name="barre de titre" border="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no"> <frameset cols="50,2000,*" scrolling="no"> <frame><frame name="frmMain" src="../test.php" id="frmMain" marginwidth="0" marginheight="0" noresize="noresize" scrolling="auto"></frameset> <frame src="../pieddepage/index.html" name="pieddepage" border="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no"> </frameset>...</html>
Donc, par défaut, le corps de la page contient "test.php" et sinon, le menu permet d'y mettre autre chose :
avec un peu avant :
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 ...<ul id="ul_menu"> <li><a href="http://---/conf/test.php" target="frmMain">Home</a></li> <li><a href="http://---/conf/test/conf_conf.php" target="frmMain">Registration</a></li> <li><a href="http://---/conf/hotel/practical.html" target="frmMain">Practical informations</a></li> <li><a href="http://---/conf/aff_participants_conf.php?monurl=<?php echo $monurl; ?>" target="frmMain">List of participants</a></li> <li><a href="http://---/conf/del_conf_conf.php" target="frmMain">Registration suppression</a></li> <li class="new_line"><a href="http://---/conf/contact/contact_conf.php" target="frmMain">Contact us</a></li> <li><a href="http://---/conf/agenda/agenda.html" target="frmMain">Agenda</a></li> <li><a href="http://---/conf/aff_detail_participants_conf.php" target="frmMain">Detailed List participants</a></li> </ul>Ca te rappelle peut-être quelque chose...Mais la coloration syntaxique est louche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?php $monurl=urlencode("---/conf/aff_participants_conf.php"); ?>
Ok.
Donc ca devrait ressembler à ca :
tapage.php :
et tes liens de cette façon :
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 <?php if(isset($_GET) && isset($_GET["monurl"])) { $monurl= $_GET['monurl']; } else { $monurl="http://www.blabla/test.php"; } $monurl=urldecode($monurl); ?> <html><head>...</head> <frameset marginwidth="0" marginheight="0" frameborder="0" border="0" framespacing="0" rows="250,200,25"> <frame src="../bandeau/test_conf.php" name="barre de titre" border="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no"> <frameset cols="50,2000,*" scrolling="no"> <frame><frame name="frmMain" src="<?php echo $monurl; ?>" id="frmMain" marginwidth="0" marginheight="0" noresize="noresize" scrolling="auto"></frameset> <frame src="../pieddepage/index.html" name="pieddepage" border="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no"> </frameset>...</html>
Code : Sélectionner tout - Visualiser dans une fenêtre à part <A HREF="tapage.php?monurl=<?php echo $monurl; ?>" TARGET="frmMain">lien</A>
Je n'ai vu le post que ce soir (bizarre, vu que j'ai mis la notif...) ; j'ai donc appliqué ton conseil, mais si je tape l'URL de la page , ça ne me donne que la frame (et normal qu'il n'y est plus de urlencode() ?)
Tu l'as sûrement déjà fait, donc où est le bug ?
Pardon il faut faire :
et non pas tapage.php puisque celle ci est directement liée à frmMain.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <A HREF="<?php echo $monurl; ?>" TARGET="frmMain">lien</A>
Laisse naturellement urldecode oui.
Y a un petit souci, car la variable $monurl n'est pas intialisée...
Comme j'aimerais bien que ça marche, j'ai essayé de mettre cette ligne :avant ce lien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?php $monurl=urlencode("http://xxx/conf/aff_participants_conf.php"); ?>, mais du coup le lien devient
Code : Sélectionner tout - Visualiser dans une fenêtre à part <A HREF="<?php echo $monurl; ?>" TARGET="frmMain">lien</A>Donc ce n'est visiblement pas la solution : qu'est-ce qu'il faut faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part http://xxx/yyy/.../http%3A%2F%2Fxxx%2Fyyy%2Faff_participants_conf.php
Regarde plus haut, urldecode :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php if(isset($_GET) && isset($_GET["monurl"])) { $monurl= $_GET['monurl']; } else { $monurl="mapagepardéfaut.html"; } $monurl=urldecode($monurl); ?>
Cette fonction transformera tes caractères "%2F" en caractères "lisibles".
Je te réponds ici, et aussi à ça :L'echo et le target sont bons, mais le problème se situe ici :Tu as bien en lien de l'url désirée en lien et le nom de ta frame en target le nom de ta frame ?
tu fais des echo de $tonlien ? qu est ce qui ne marche pas ?
Quand, je rajoute cette ligne, on passe dans le else
et pour comprendre, le get, il est positionné où ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php if(isset($_GET) && isset($_GET["monurl"])) { $monurl= $_GET['monurl']; } else { $monurl="http://xxx/test.php"; } $monurl=urldecode($monurl); ?>
Le GET est positionné avant ta frame.
Il lui indiquera donc l'url à afficher.
Moi, le seul moyen que je connaisse pour positionner un GET, c'est le passage d'info par URL : <a href="---URL---?monurl="xxx">lien</a> et du coup, ds l'URL, $_GET['monurl'] vaut xxx.
Bon, comme ça ne marche pas encore, je résume tout ce que j'ai fait :
en fait, je n'ai modifié que la page qui gère le menu, avec :et un peu plus loin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if(isset($_GET) && isset($_GET["monurl"])) { $monurl= $_GET['monurl']; } else { $monurl="http://xxx/test.php"; } $monurl=urldecode($monurl);mais à aucun endroit, il n'y a de référence à l'URL de la page (http://xxx/aff_participants_conf.php) et donc, ça ne peut pas marcher...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <li><a href="<?php echo $monurl; ?>" target="frmMain">List of participants</a></li>
Salut,
Voici un exemple que tu pourras adapter à ton cas.
index.php
Contient le jeu de cadres (frameset).
Code php : 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 <?php // Pages déstinées à être placées dans un cadre $pages=array('gallerie','infos'); // Lecture de l'éventuel paramètre $p=(isset($_GET['p']))?rawurldecode(trim((string)$_GET['p'])):''; // La variable $file contiendra le nom du fichier (sans chemin ni extension). // Si aucun paramètre est spécifié ou qu'il n'est pas trouvé dans le tableau $pages, alors $file contiendra la page par defaut... 'accueil'. $file=(in_array($p,$pages,true))?$p:'accueil'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Test</title> </head> <frameset rows="64,*,64"> <frame src="entete.html" name="haut" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no" /> <frameset cols="200,*"> <frame src="menu.html" name="menu" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="auto" /> <frame src="<?php echo $file; ?>.html" name="principal" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="auto" /> </frameset> <frame src="pied.html" name="bas" frameborder="0" marginwidth="0" marginheight="0" noresize="noresize" scrolling="no" /> <noframes> <body> <p>Les jeux de cadres ne sont pas pris en compte</p> </body> </noframes> </frameset> </html>
Cadres
Chaque page déstinée à être placée dans un cadre contient un code Javascript qui, si la page est appelée directement, redirige le navigateur vers le jeu de cadre, recréant ainsi le contexte à l'aide du paramètre (GET) de l'URL.
haut
Cadre du haut couvrant toute la largeur.
entete.htmlmenu
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 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Entete</title> <script type="text/javascript"><!-- if(parent.frames.length==0)window.top.location.replace('./'); //--> </script> </head> <body> <p>entete.html</p> </body> </html>
Cadre du milieu à gauche
menu.htmlprincipal
Contient les liens vers les pages déstinées à être placées dans le cadre nommé "principal".
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 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Test</title> <script type="text/javascript"><!-- if(parent.frames.length==0)window.top.location.replace('./'); //--> </script> </head> <body> <p>Menu</p> <ul> <li><a href="accueil.html" target="principal">Accueil</a></li> <li><a href="gallerie.html" target="principal">Gallerie</a></li> <li><a href="infos.html" target="principal">Informations</a></li> </ul> </body> </html>
Cadre du milieu à droite
Pages pouvant y être chargées :
accueil.html
gallerie.html
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 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Accueil</title> <script type="text/javascript"><!-- if(parent.frames.length==0)window.top.location.replace('./'); //--> </script> </head> <body> <p>accueil.html</p> </body> </html>
infos.html
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 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Gallerie</title> <script type="text/javascript"><!-- if(parent.frames.length==0)window.top.location.replace('./?p=gallerie'); //--> </script> </head> <body> <p>gallerie.html</p> </body> </html>
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 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Informations</title> <script type="text/javascript"><!-- if(parent.frames.length==0)window.top.location.replace('./?p=infos'); //--> </script> </head> <body> <p>infos.html</p> </body> </html>
pied
Cadre du bas couvrant toute la largeur.
pied.html
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 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Pied de page</title> <script type="text/javascript"><!-- if(parent.frames.length==0)window.top.location.replace('./'); //--> </script> </head> <body> <p>pied.html</p> </body> </html>
Partager