- · Niveau : DÉBUTANT
- · Compatibilité : Tous les navigateurs
Ce truc est souvent demandé, le voilà donc. La technique est de pouvoir faire référence et modifier l’attribut « location.href » de la page principale depuis une autre page. Le Javascript le permet très simplement pourvu que la deuxième page (pop-up), ait été, au préalable, appelée par la page principale.
Le secret c’est l’objet " opener " qui permet de référer à la page qui a ouvert le pop-up " page courrante ". Pour changer le contenu de la page principale, il ne reste plus qu’a modifier l’attribut " location.href ".
opener.location.href = " http://www.xxx.com " ;
La fonction suivante fait le lien dans la page " maître " ou principale mais en plus elle vérifie que la page " maître " est encore disponible. Si elle n’est plus disponible, parce que le visiteur l’a fermé, le lien s’ouvre dans une nouvelle page.
<head>
<script type="text/javascript" language="javascript">
<!-- Debut
function lien(url) {
var maitre;
if (opener.closed) {
// si la fenêtre principale est fermée
maitre=window.open(%27%27,%27nomprincipal%27,%27toolbar=yes,
location=yes,status=yes,menubar=yes, scrollbars=yes,resizable=yes,copyhistory=no%27);
maitre.location.href = url;
} else {
// Si la fenêtre principale est ouverte
opener.location.href = url;
}
// Ferme le pop-up automatiquement
// nomdupop=window.close()
}
// Fin -->
</script>
</head>
J’ai ajouté une ligne en remarque qui ferme le pop-up automatiquement après avoir cliqué sur un lien. Si vous voulez l’activer, enlever tout simplement les barres indiquant que c’est une remarque " // " et changer "nomdupop" par le vrais nom du pop.
Maintenant, il faut appeler la fonction par les liens.
<body>
<a href="javascript:lien(%27http://www.toile.com%27)">lien
1</a>
<a href="javascript:lien(%27http://www.googgle.com%27)">lien
2</a>
</body>
N’oubliez pas que ce code doit être placé dans la page du pop-up. Pop-up qui doit absolument être ouvert avant par la page principale ou " maître ".