[javascript] redéfinir la source d'une frame

thrips

Expert
Bonjour à tous.

Bon, je sais que les frames c'est pas le top mais c'est un ami qui m'a proposé ce problème et j'essaie de le résoudre en javascript.

à partir d'une page1 qui contient quelques boutons submit, on appelle une page2 qui contient 2 frames(page3 et page4). On veut que dépendant du bouton pressé sur la page1, la page4 s'affiche à partir d'une ancre précise.

Alors voici le code de mes pages. Le code javascript de la page1 fonctionne bien mais c'est celui de la page 2 qui ne fonctionne pas.

En fait on dirait que peu importe ou je place l'appel à la fonction set_source() dans la page2, elle ne s'exécute jamais.

Page1 : [cpp]<script language="JavaScript1.2">
function set_ancre (bouton) {
document.forms[bouton.form.name].action = "page2.html#" + bouton.name;
}
</script>

<html>
<head>
<title></title>
</head>
<body>
<form name="boutons" action="page2.html" method="post">
<input type="submit" name="ancre1" value="Ancre 1" onclick="set_ancre(this);"><br>
<input type="submit" name="ancre2" value="Ancre 2" onclick="set_ancre(this);"><br>
<input type="submit" name="ancre3" value="Ancre 3" onclick="set_ancre(this);">
</form>
</body>
</html>[/cpp]

Page2 : [cpp]<script language="JavaScript1.2">
function set_source() {
var ancre = "";
var url = document.href;
var position= url.lastIndexOf("#");

if (position != -1) {
ancre = substring(position, url.length);
}

window.frames["page4"].src = "page4.html" + ancre;
}
</script>

<html>
<head>
<title></title>
</head>
<frameset rows="50%,*">
<frame name="page3" src="page3.html">
<frame name="page4" src="page4.html">

<script language="JavaScript1.2">
set_source();
</script>
<body>

</body>
</frameset>
</html>[/cpp]

Page 4 : [cpp]<html>
<head>
<title></title>
</head>
<body>
Contenu de la page 4
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>

<a name="ancre1"></a>
l'ancre 1 commence ici !
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>

<a name="ancre2"></a>
l'ancre 2 commence ici !
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>

<a name="ancre3"></a>
l'ancre 3 commence ici !
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.
<br>.<br>.<br>.<br>
</body>
</html>[/cpp]

Merci d'avance pour votre aide.
 

thrips

Expert
J'ai finalement trouvé la solution à mon problème tout seul. Je vous la donne au cas ou quelqu'un qurait quelque chose de semblable à faire :

La page1 reste pareille.

La page2 contient seulement :[cpp]<html>
<head>
<title></title>
</head>
<frameset rows="50%,*">
<frame name="page3" src="page3.html">
<frame name="page4" src="page4.html">
<body>
</body>
</frameset>
</html>[/cpp]

La page4 contient maintenant :[cpp]<script language="JavaScript1.2">
var ancre = "";

//Trouver l'URL de la page en haut
var url = parent.document.location.href;
//Trouver la position du caractère # dans l'URL
var position= url.lastIndexOf("#");

//Si il a trouvé le caractère # dans l'URL
if (position != -1) {
//Extraire le nom de l'ancre de L'URL
ancre = url.substring(position, url.length);

//Redéfinir la source du frame "page4"
parent.page4.location.href = "page4.html" + ancre;
}
</script>

<html>
<head>
<title></title>
</head>
<body>
Contenu de la page 4<br>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
<a name="ancre1"></a>
l'ancre 1 commence ici !
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
<a name="ancre2"></a>
l'ancre 2 commence ici !
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
<a name="ancre3"></a>
l'ancre 3 commence ici !
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
</body>
</html>[/cpp]
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 005
Membres
1 586 388
Dernier membre
mery2005
Partager cette page
Haut