Petite question sur les liens portant sur des frames

Petite question sur les liens portant sur des frames - Programmation

Marsh Posté le 02-09-2001 à 20:13:17    

Est-il possible de créer un lien sur une page A, vers une page B avec des frames  en spécifiant la page à afficher dans l'une des frames ?
 
Merci

Reply

Marsh Posté le 02-09-2001 à 20:13:17   

Reply

Marsh Posté le 02-09-2001 à 20:30:26    

oui avex latrribu target="x" dans tas balise <A>

Reply

Marsh Posté le 02-09-2001 à 21:09:12    

Euh ... je crois qu'on s'est pas bien compris.
 
Disons que j'ai une page accueil.htm et une page principal.htm qui a 2 frames, "titre" et "contenu".
 
Je voudrais, de la page accueil.htm, envoyer vers principal.htm en choisissant la page qui sera affichée dans la frame "contenu".

 

[edtdd]--Message édité par Kodamas--[/edtdd]

Reply

Marsh Posté le 02-09-2001 à 21:17:33    

a oki je pige mieux , je sais pas comment faire dans ce cas ( surment par javascript )

Reply

Marsh Posté le 02-09-2001 à 21:27:03    

Merci quand même ;)

Reply

Marsh Posté le 02-09-2001 à 21:31:08    

bah c le meme principe, avec target="" ds les balises <a>
sinon tu cree une seul page avec les 3 frames, ca sera plus simple que davoir une page a 2 frames, et une autre avec encore 2 frames.
si t pas sur pour la page a 3 frames dis moi et je te le fait.

Reply

Marsh Posté le 02-09-2001 à 21:45:51    

par javascript, c'est pas possible car il faudrait que la page de frame puisse récupérer des arguments passé par paramètres or le javascript ne le permet pas. il faut donc envisager une solution coté serveur.

Reply

Marsh Posté le 02-09-2001 à 21:46:33    

Je veux avoir la première page sans frame et envoyer vers une page avec 2 frames. Je vois pas l'intérêt de créer une page avec 3 frames. :??:  
 
E je pense pas pouvoir faire un lien <a href="principal.htm" <a href="exemple.htm" target="contenu"></a>>Lien</a>

Reply

Marsh Posté le 02-09-2001 à 21:47:14    

gizmo a écrit a écrit :

par javascript, c'est pas possible car il faudrait que la page de frame puisse récupérer des arguments passé par paramètres or le javascript ne le permet pas. il faut donc envisager une solution coté serveur.  




 
C'est à dire ?
 
J'y connais nada donc éclaire moi un peu. ;)

Reply

Marsh Posté le 02-09-2001 à 21:50:20    

bin via asp, cgi ou php ainsi tu apellera une page commune avec un paramètre (style principal.php?page=1) et en fonction de ce paramètre, il contruira la page de frame avec les pages désirées

Reply

Marsh Posté le 02-09-2001 à 21:50:20   

Reply

Marsh Posté le 02-09-2001 à 22:06:21    

Oula !
 
Bon ben bokou trop compliqué pour moa.
 
Je vais me débrouiller autrement; Merci ;)

Reply

Marsh Posté le 02-09-2001 à 22:07:47    

c'est pas dur, si tu acceptes le php, je te le fais demain, ca prend 15min.

Reply

Marsh Posté le 02-09-2001 à 22:18:29    

parole de gizmo  :D

Reply

Marsh Posté le 02-09-2001 à 22:19:40    

gizmo a écrit a écrit :

c'est pas dur, si tu acceptes le php, je te le fais demain, ca prend 15min.  




 
Je suis hébergé chez free donc je pense que ça passe.
 
Et merci.

Reply

Marsh Posté le 03-09-2001 à 00:17:56    

arf javais pas compris ta question, stupide de moi :)
vi c possible et la seul facon que je vois c en javascript.
Par contre faudra que tu me dises comment tu decide de quel page a affiche ds les frames, si c par lien ou par hasard ou par resolution .... si on click, si on est redirige, explike plus plz

Reply

Marsh Posté le 03-09-2001 à 09:41:12    

Voila, alors dans le fichier principal.php3 tu écris:
 

Code :
  1. <html>
  2. <head>
  3. </head>
  4. <frameset cols="15%,*" rows="*" border="0" framespacing="0" frameborder="NO">
  5.   <frame name="titre" scrolling="auto" src="menu.php3">
  6.   <frame name="contenu" scrolling="auto" src="<? echo $page ?>">
  7. </frameset>
  8. <noframe>
  9. <body>
  10. désolé cette page nécessite des frames
  11. </body>
  12. </noframe>
  13. </html>


 
c'est tout. Tu peux changer tout ce que tu veux dans les paramètres des frames, la seule chose importante, c'est ce qui ce trouve entre <? et ?>
 
Et dans ton fichier accueil.html, tu n'a qu'a appeler ta page comme ca:
 

Code :
  1. <a href="principal.php3?page=nom_de_page_1.htm">lien1</a>
  2. <a href="principal.php3?page=nom_de_page_2.htm">lien2</a>


 
en remplacant nom_de_page_x.htm par la page qui devra se trouver dans la frame contenu.

 

[edtdd]--Message édité par gizmo--[/edtdd]

Reply

Marsh Posté le 03-09-2001 à 12:42:55    

Gizmo,
 
si t'as du temps j'ai plein de truc a te refiler :D

Reply

Marsh Posté le 03-09-2001 à 12:50:00    

beuh........C posible en javascript...
ds ta frame tu appelles colles un truc du style
 
<a href="" onclick="go(tapage.htm)">tapage</a>
 
<script...>
var tapage="";
function go(page)
{
  tapage=page;
  document.parent.principal=acceuil.htm;
}
 
tu charges toujours la meme page ds ta frame
</script>
 
et sur ton acceuil.htm tu colles un truc du genre :  
 
this.location=document.parent.menu.form.tapage
 
en collant les variables ds des champs hidden tu peux te demerder
a++

Reply

Marsh Posté le 03-09-2001 à 14:17:59    

zul>> pas convaincu par ta méthode mais si tu trouves a le faire complètement, je m'incline.
 
barbarella>> cours toujours [:nofret]

Reply

Marsh Posté le 03-09-2001 à 23:44:12    

Je préfère la méthode de gizmo. [:nofret]

Reply

Marsh Posté le 03-09-2001 à 23:52:54    

Grand merci au passage pour vos réponses à tous, je teste ça tout de suite ;)

Reply

Marsh Posté le 04-09-2001 à 12:44:48    

Salut !
je sais pas si je vais apporter beaucoup d'eau au moulin, mais Zul a raison, c'est possible en javascript.
 
j'ai fait un petit exemple qui fonctionne sous Opéra 5.12 et IE.
 
Pour ceux que ça intéresse voici, le code
 
page A (accueil)
 
<html>
<head>
<title>envoie de parm via javascript</title>
</head>
<body>
<a href="testframe.htm?p=0|p2=txt.htm">affiche le lien dans la premiere frame</a>
<br>
<a href="testframe.htm?p=1|p2=txt.htm">affiche le lien dans la seconde frame</a>
</body>
</html>
 
Page B (contient deux frames)
 
<!-- frames -->
<script language="javascript">
function Recup()
{
var chm = window.location;
var vFrame;
var vPage;
chm = chm.toString();
vPage = chm.indexOf("p2=",0);
vPage = chm.substring(vPage+3,chm.length);
vFrame = chm.indexOf("p=",0);
vFrame = chm.substring(vFrame+2,vFrame+3);
vFrame = parseInt(vFrame);
top.frames[vFrame].location = vPage;
}
</script>
<frameset  cols="50%,*" onload="Recup()">
    <frame name="frame1" src="t1.htm" scrolling="auto" frameborder="0">
    <frame name="frame2" src="t2.htm" scrolling="auto" frameborder="0">
</frameset>
 
Selon le lien sur lequel on click, il affiche bien la page txt.htm (fichier de mon exemple), dans le cadre définie par lien de la page d'accueil.
 
voila, voila.

Reply

Marsh Posté le 04-09-2001 à 13:28:34    

joli :) mais alors pour faire ce que koda demande, y a moyen de simplifier.  
 
Si je ne me trompe, les adresse seraient du style
 
<a href="testframe.htm?p=txt.htm">
 
et le code deviendrait
 
<!-- frames -->
<script language="javascript">
function Recup()
{
var chm = window.location;
var vPage;
chm = chm.toString();
vPage = chm.indexOf("p=",0);
vPage = chm.substring(vPage+2,chm.length);
top.frames[1].location = vPage;
}
</script>
<frameset  cols="50%,*" onload="Recup()">
   <frame name="frame1" src="menu.htm" scrolling="auto" frameborder="0">
   <frame name="frame2" src="t2.htm" scrolling="auto" frameborder="0">
</frameset>
 
j'ai bon?

Reply

Marsh Posté le 04-09-2001 à 14:45:53    

houais mais dans ce cas là tu ne specifie pas dans quelle frame tu veux afficher la page. hors Kodamas, si j'ai bien tout compris, il voulait aussi choisir dans quelles frames afficher la page. Hors dans ton cas c'est toujours dans la seconde.

Reply

Marsh Posté le 04-09-2001 à 14:48:59    

non, non, il veut choisr quelle page afficher dans la frame 'contenu'.

Reply

Marsh Posté le 04-09-2001 à 20:07:32    

Ils sont trop mignons à continuer à se prendre la tête ;)

Reply

Marsh Posté le 04-09-2001 à 20:09:18    

:na:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed