Positionnement dans une page html en passant par deux autres pages

Signaler
Messages postés
8
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 mai 2006
-
Messages postés
8
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 mai 2006
-
Bonjour,

Je débute en html... mais je progresse !! et dans cette progression, je tombe sur un hic...
Je suis dans une page HTML Liste de lien que je vais nommé FenetreCarte.htm.
Je selectionne une "carte", une nouvelle page s'affiche avec un ecran découper en deux (DeuxEcranCarte.html) qui me permet d'afficher le MenuCarte sous une autre forme et les différentes cartes contenues dans la page "AfficheCarte.html".
Mon but est, en cliquant sur une carte dans ma page FenetreCarte.html, d'acceder à un point précis de la fenetre AfficheCarte.html.
Le problème est de passer le choix à travers la page DeuxEcransCarte.html pour arriver sur mon point d'encrage dans AfficheCarte.htm.

Si vous avez une idée, je suis preneuse...
Bonne journée..

Babarr38

10 réponses

Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
d'une Frame a l'autre tu peux utiliser des fonctions :

window.frames['nomframe'].nomfonction();

Ca devrait te suffire...
Messages postés
8
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 mai 2006

je suis totalement débutante en la question (je n'ai encore aucune notion en javascript, tout mon site est qu'en HTML). Est ce que tu aurais un exemple d'utilisation ? ou un endroit ou je puisse trouver un exemple ?
Merci ... En attendant, je vais creuser avec ce que tu me donnes là.

Babarr38
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
tu as deux frames :

<FRAME NAME="CadreGauche" src="...">
<FRAME NAME="CadreDroit" src="...">

Dans le code source de la frame de gauche tu peux appeler des fontcions javascript se trouvant dans la frame de droite ainsi :

window.frames['CadreGauche'].nomdelafonction ();

Il suffit que ta fonction te renvoit les informations dont tu as besoin :

function nomdelafontion ()
{
// Appelée depuis l'autre frame, cette fonction sert simplement à
// renvoyer une information

}
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
Gasp !

function nomdelafontion ()
{
// Appelée depuis l'autre frame, cette fonction sert simplement à
// renvoyer une information
return ('une information');
}

J'ai été coupé... :)
Messages postés
8
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 mai 2006

C'est encore moi... Voila ou j'en suis...
Dans ma page FenetreCarte.htm (qui est l'équivalent d'un menu et donc une serie de liens), j'ai mis dans la partie <HEAD> la fonction suivant ce que tu m'as indiqué :

<SCRIPT>
function IdentCarte(page) {

document.writeln("Ceci vient de Javascript : page :
"+page)

return(page); }

</script>

Cette fonction me permet de passer le nom d'une page HTM ensuite.

Puis dans la partie
J'alimente mon paramètre de la facon suivante


<SCRIPT Language="javascript">
IdentCarte('AfficheLhassa.htm')
; => le nom de la page que j'aurai à charger plus tard
</SCRIPT>


[CarteVoyage/DeuxEcransCarte.htm

Alentour de Lhassa
]



Ensuite, en cliquant sur le lien concerné qui pointe sur une nouvelle page HTML contenant

<FRAMESET cols="25%,75%" FRAMEBORDER="no"
>
<FRAME src="MenuCartes.htm" NAME="MenuCarte" SCROLLING="yes">
<FRAME src="window.frames['FenetreCarte'].IdentCarte()" NAME="CarteVoyage" SCROLLING="yes"> => c'est à ce niveau que je voudrai voir pointer le paramètre que j'ai indiquer dans l'autre page

</FRAMESET>

A ce niveau, il doit me manquer quelque chose ... ou je ne doit pas l'ecrire correctement.



Babarr38
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
Alors, pour faire plaisir a Bul, je te reprends sur quelques points :

<script type="text/javascript">
<!--
// ici le code javascript
-->
</script>

Voilà :)

Ensuite pour t'aider :
- document.writeln est une fonction qui écrit dans le source du document, à la place de l'ancien, tu va donc effacer ta propre page, et donc le script. Ce n'est pas la bonne solution, utilise plutot alert() qui te fait un petit pop-up.

A partir de la j'ai plusieurs questions :
- as-tu un site pour montrer ce que tu veux faire ?
- tu as quoi au depart ? un seule page ? un menu sur la gauche ?
- qu'as-tu a droite ?
- quand on clique sur le menu, tu veux afficher la carte a droite ?
Messages postés
8
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 mai 2006

En effet, ce n'est pas l'effet rechercher que d'effacer tout. Je pensai que ca me permet d'afficher mon parametre... tans pis...

Voici le site...
http://toutsurletibet.site.voila.fr/
Selection Preparation, puis Etapes... Alors apparait un ecran divisé en 3 parties (CarteEtapes.htm - divise la partie Etape en deux : une avec le menus de carte horizontale -FenetreCarte.htm- et l'autre pour la partie Etape - Elle même, appelant DeuxEcransEtapes.htm divisée en 2 pour la liste des etapes + la documentation de l'etape) et (une liste d'etape, une page centrale et une serie de cartes)...
Ce qui est fait pour le moment...
Je selectionne une carte (Celle de Lhassa fonctionne ;-)) et je pointe sur un nouvel ecran contenant la carte uniquement.
Parallement à cela, toujours dans le menu préparation, il y a une option "Carte". Alors c'est la page DeuxEcransCarte.htm qui déclenche l'apparition de 2 nouvelles frames contenant la liste des cartes MenuCarte.htm disponibles et suite à la selection la carte désirée (AlentourLhassa.htm par exemple).

Ce que je souhaite faire, c'est lorsque je suis dans le menu "Etapes" et non "Cartes" et que je selectionne une carte, je souhaite aussi avoir le MenuCarte.htm et pointer sur la bonne carte.
Voila. En fait, le fait de passer par DeuxEcransCarte.htm à partir de la page FenetreCartes.htm, je perds complement le nom de la page que je veux charger.

Babarr38
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
Ok, quand tu cliques sur "Alentours de Lhassa" Dans "FenetreCarte", tu souhaites afficher, comme si on avait cliquer sur "Cartes", puis sur "Alentours de Lhassa" donc ?
Messages postés
8
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 mai 2006

En clair et court, c'est totalement ca

Babarr38
Messages postés
8
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
2 mai 2006

Bonjour,

J'ai progressé dans la résolution du probleme. J'ai effectué le petit script suivant dans ma page html :



function ChoixCarte(paramChoix)

{

resultat='';

resultat=resultat+'<FRAMESET cols="25%,75%" FRAMEBORDER="no">';

resultat=resultat+'<FRAME src="CarteVoyage/MenuCartes.htm" NAME="MenuCarte" SCROLLING="yes" >';



switch (paramChoix) //Choix de ma carte dans la partie body dans ma page HTML

{

case "1" : // Kumning - Gyeltang

resultat=resultat+'<FRAME src="CarteVoyage/AfficheKunming.htm"

NAME="CarteVoyage" SCROLLING="yes">';

break;

case "2" : // Sichuan

resultat=resultat+'<FRAME src="CarteVoyage/AfficheSichuan.htm"

NAME="CarteVoyage" SCROLLING="yes">';

break;

case "3" : // Lhassa

resultat=resultat+'<FRAME src="CarteVoyage/AfficheLhassa.htm"

NAME="CarteVoyage" SCROLLING="yes">';

break;

default :

alert ("Probleme dans la selection de la carte");

}



resultat=resultat+'</FRAMESET>';

//window.open(newfen,resultat);

document.write(resultat);

}



Dans ma partie Body :






Kunming - Gyeltang ,

Région du Sichuan ,

Alentour de Lhassa




En cliquant sur mon menu de carte, j'obtiens bien mon menu et la carte
associée à la selection... Le seul probleme est qu'il me le met dans la
même fenetre au lieu de me le mettre dans une nouvelle.

Je pense que cela provient de la methodes Write... Mais je n'arrive pas
à trouver une autre methode qui correspondrait à l'affichage dans une
autre fenetre.



Avis aux amateurs d'idées... je prends...

Bonne soirée.


Babarr38